Entry widget Inhalt ausgeben

Fragen zu Tkinter.
Antworten
Mister
User
Beiträge: 36
Registriert: Freitag 24. Januar 2020, 21:58

Hallo Leute,
Ich habe jetzt verzweifelt überall gesucht und so weiter aber ich finde nichts oder die Tutorials sind scheisse. Ich bin ein Python Anfänger und wahrscheinlich sollte ich mir mal ein Buch zu dem Thema kaufen usw aber egal:
Mein Problem ist eigentlich ganz primitiv aber irgendwie bin ich zu blöd dafür. Ich will ein Entry widget einfach nur auslesen:
Eine Zeile wo man was eingibt und auf Knopfdruck soll der Inhalt irgendwo erscheinen von mir aus auch in der shell. Hauptsache ich kriegs mal angezeigt. Das mit dem Fenster und widgets erstellen ist kein Problem. Nur wie kann ich mit einer Funktion den Inhalt des Entry widgets auslesen und irgendwo verwerten?
Ich hoffe ihr könnt mir helfen, ich finde das Problem nicht. Könnte mir einfach mal jemand eine mögliche Lösung schicken?
Ps:manchmal steht statt dem entry Inhalt etwas in der Art da: {! Entry}
Vlt hilfts ja und ihr könnt mir auch noch das Problem nennen
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und wo ist der Code in dem du das probierst?
Mister
User
Beiträge: 36
Registriert: Freitag 24. Januar 2020, 21:58

Den hab ich hier leider grad nicht zur Verfügung bin auf dem Handy. Könntet ich vlt einfach mal eine mögliche Lösung sehen?
Sirius3
User
Beiträge: 18289
Registriert: Sonntag 21. Oktober 2012, 17:20

@Mister: da Du mit der Lösung gerade auch nichts machen kannst, können wir auch warten, bis Du wieder Zugriff auf Deinen Code hast und ihn hier gepostet hast.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Alles was man braucht steht auch im ersten link bei google. https://effbot.org/tkinterbook/entry.htm

Wenn das trotzdem nicht klappt, dann liegt das schon an DEINEM Code.
Mister
User
Beiträge: 36
Registriert: Freitag 24. Januar 2020, 21:58

Also Ich bin jetzt am RPi und habe mal den Code aus dem Internet abgetippt. Trotzdem klappt es nicht. Vlt ist es ein Schreibfehler oder so aber es hakt bei print e.get. Der Code:

Code: Alles auswählen

from tkinter import *
master=Tk()
e=Entry(master)
e.pack()
e.focus_set()

def callback():
    print e.get()
b=Button(master,command=callback,text="Callback",width=10)
b.pack()
mainloop()
e=Entry(master,width=50)
e.pack()
text=e.get()
def makeentry(parent, caption,width=None, **options):
    Label(parent,text=caption).pack(side=LEFT)
    entry=Entry(parent, **options)
    if width:
        entry.config(width=width)
    entry.pack(side=Left)
    return entry
user =makeentry(parent, "User Name:",10)
password=makeentry(parent, "Password:",10 show="*")

content=StringVar()
entry=Entry(parent, text=caption,textvariable=content)

text=content.get()
content.set(text)
Tja was ist der Fehler? Die Fehlermeldung war:

Traceback (most recent call last):
File "/home/pi/Programme/entryWidgetTest.py", line 8
print e.get()
^
SyntaxError: invalid syntax

Ich hoffe ihr könnt mir helfen
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist Python 2 Code, und du benutzt Python 3. Da ist print eine Funktion.
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Seit Python 3 ist print eine Funktion.

Code: Alles auswählen

print(e.get())
Sirius3
User
Beiträge: 18289
Registriert: Sonntag 21. Oktober 2012, 17:20

@Mister: das ist alles eine Aneinanderreihung von Codeschnipseln, die Du irgendwo abgetippt hast, so aber keinen Sinn ergeben.
`tkinter` wird über `import tkinter as tk` eingebunden und alle Namen per tk.xy angesprochen; *-Importe sind schlecht. Dann solltest Du bessere Variablennamen benutzen. `e` wird zwei mal verwendet. `text` wird nie verwendet, macht so auch keinen Sinn, denn zu dem Zeitpunkt konnte noch gar nichts eingegeben werden. `parent` ist gar nicht definiert. Müßte wohl `master` sein. Außerdem solltest Du Dich entscheiden, ob Du StringVar benutzt oder nicht. In der Zeile mit `password` fehlt ein Komma; mainloop ist irgendwo mitten drin.

Programmieren muß man lernen, es hilft nicht, irgendwas zusammenzukopieren und zu hoffen, dass da was sinnvolles rauskommt.
Benutzeravatar
__blackjack__
User
Beiträge: 14087
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Mister: Ergänzend zu Sirius3: Jede nicht-triviale GUI setzt letztlich objektorientierte Programmierung voraus, das heisst es reicht auch nicht nur die Anfänge zu lernen, das muss man dann schon wirklich *richtig* lernen und da auch entsprechend Zeit für einplanen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Mister
User
Beiträge: 36
Registriert: Freitag 24. Januar 2020, 21:58

Sirius3 hat geschrieben: Sonntag 26. Januar 2020, 00:08 @Mister: das ist alles eine Aneinanderreihung von Codeschnipseln, die Du irgendwo abgetippt hast, so aber keinen Sinn ergeben.
`tkinte

Hab ich von der Internetseite vom 1. Link auf Google abgetippt wo ja alles ist was man brauch. Toller Tipp.
Mister
User
Beiträge: 36
Registriert: Freitag 24. Januar 2020, 21:58

So jetzt hab ich mal einen Kommafehler behoben und die Klammern beim print gesetzt und es funktioniert. Danke dafür auch wenn es nicht optimal zu sein scheint
Benutzeravatar
__blackjack__
User
Beiträge: 14087
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Mister: Da hat __deets__ wohl als gegeben vorausgesetzt das so eine graue Masse zwischen den Ohren zum denken und der Wille die auch zu benutzen vorhanden ist, und das man natürlich auch Python können muss bevor man GUIs in Python programmiert.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Sirius3
User
Beiträge: 18289
Registriert: Sonntag 21. Oktober 2012, 17:20

Auf der von Dir verlinkten Seite kommt leider nicht so recht zum Ausdruck, dass die Zeilen, die Du abgeschrieben hast, kein Beispiel ist, wie man Entry anwendet sollte, sondern nur verschiedenste Code-Schnipsel (von geringer Qualität), wie Entry irgendwo eingesetzt wurde.
Mister
User
Beiträge: 36
Registriert: Freitag 24. Januar 2020, 21:58

__blackjack__ hat geschrieben: Sonntag 26. Januar 2020, 11:04 @Mister: Da hat __deets__ wohl als gegeben vorausgesetzt das so eine graue Masse zwischen den Ohren zum denken und der Wille die auch zu benutzen vorhanden ist, und das man natürlich auch Python können muss bevor man GUIs in Python programmiert.
Oof das hat wehgetan. Vielen Dank dafür auch..
Mister
User
Beiträge: 36
Registriert: Freitag 24. Januar 2020, 21:58

Könnte man einer lebenden Person durch den Schädel ins Gehirn blicken, sähe man eine eher beige-rosa Schicht, wie dieses Bild, das während einer Operation aufgenommen wurde, eindrücklich zeigt. Die rötliche Farbe kommt von den zahlreichen Blutgefäßen, die dafür sorgen, dass unser Denkorgan mit genügend Sauerstoff und Nährstoffen versorgt ist. Und an beidem hat ein arbeitendes Gehirn reichlich Bedarf.

https://www.spektrum.de/frage/sind-die- ... au/1421089
Was hat deets denn da vorausgesetzt? Hat er etwa eine graue Masse zwischen seinen Ohren? Graue Zellen sind nämlich tot. Das ist aber nicht gut. Ich bleibe bei meiner rosa Masse, danke.
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

@Mister: so etwas nennt man Redewendung, ein rhetorisches Stilmittel.

Redewendung: feste Verbindung von Wörtern, die zusammen eine bestimmte, meist bildlich-metaphorische Bedeutung haben.

Ich hoffe ich konnte dir so viel beibringen wie du mir mit deinem obigen Post.

Übrigens ist das Gehirn tatsächlich grau, nur so lange es durchblutet ist nimmt es eine rötliche Farbe an.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mister hat geschrieben: Montag 27. Januar 2020, 09:48 Was hat deets denn da vorausgesetzt? Hat er etwa eine graue Masse zwischen seinen Ohren? Graue Zellen sind nämlich tot. Das ist aber nicht gut. Ich bleibe bei meiner rosa Masse, danke.
Ich habe genau das vorausgesetzt, was du selbst behauptet hast: es gibt ein Programm, alles „kein Problem“ - nur das entry widget auszulesen fehlt. Um dir da einen Tipp zu geben habe ich auf die Dokumentation verwiesen. Mit keinem Wort habe ich vorgeschlagen, den Code darin ohne Sinn und verstand zusammen zu kloppen. Das ist schon deine „Eigenleistung“.

Und den Spruch mit der grauen Masse ist im Übrigen von __blackjack__. Jetzt mich dafür anzugehen zeugt also von wenig ausgebildeter Lesekompetenz, Durchblutung hin oder her.
Mister
User
Beiträge: 36
Registriert: Freitag 24. Januar 2020, 21:58

__deets__ hat geschrieben: Montag 27. Januar 2020, 14:19
Und den Spruch mit der grauen Masse ist im Übrigen von __blackjack__. Jetzt mich dafür anzugehen zeugt also von wenig ausgebildeter Lesekompetenz, Durchblutung hin oder her.
OK sorry _deets_. Nach vorheriger ausführlicher Überlegung mit meiner "Grauen Masse" entschuldige ich mich vielmals.
Antworten