Ich habe eine einfache GUI in Tkinter gemacht. (Code ist unten) Wenn ich die "Fetch" -Taste drücke, bekomme ich die Texteingabe von der GUI in einer Befehlszeile.Tkinter Variablen
Nehmen wir an, dass in diesem Beispiel der "Benutzer" 0,5 in das Feld "Service Points Won" und 0,7 in das Feld "Return Points Won" als Eingabe setzt. Wenn ich die „Fetch“ Botton drücke ich die folgenden Ergebnisse in Eingabeaufforderung angezeigt bekommen
0.5
0.7
Was würde Ich mag es, zu erreichen, dass neben dem angezeigten Ergebnis in Eingabeaufforderung die passende „Label“ wird ebenfalls angezeigt.
Also, um zu meinem Beispiel mit 0,5 und 0,7 als Eingabe zurückzukehren. Ich möchte ein Ergebnis in der Eingabeaufforderung wie folgt erhalten.
"Service Points Won" 0.5
"Return Points Won" 0.7
GUI Script
from Tkinter import *
fields = 'Service Points Won', 'Return Points Won'
def fetch(variables):
for variable in variables:
print "%s" % variable.get()
def makeform(root, fields):
lab1= Label(text="Stats", font="Verdana 10 bold")
form = Frame(root)
left = Frame(form)
rite = Frame(form)
lab1.pack(side=TOP)
form.pack(fill=X)
left.pack(side=LEFT)
rite.pack(side=RIGHT)
variables = []
for field in fields:
lab1= Label()
lab = Label(left, text=field)
ent = Entry(rite)
lab.pack(anchor='w')
ent.pack(fill=X)
var = StringVar()
ent.config(textvariable=var)
var.set('0.5')
variables.append(var)
return variables
if __name__ == '__main__':
root = Tk()
vars = makeform(root, fields)
Button(root, text='Fetch',
command=(lambda v=vars: fetch(v))).pack()
root.bind('<Return>', (lambda event, v=vars: fetch(v)))
root.mainloop()
Irgendwelche Vorschläge?
'Variable' hat wahrscheinlich mehr Methoden und Attribute als nur' .get() '. Vielleicht gibt Ihnen eine der anderen Methoden oder Attribute den Namen des Feldes? Oder vielleicht sogar 'str (variabel)' den Trick? – Evert
@Evert, str (variable) macht den Trick nicht. Welche anderen Methoden oder Attribute könnte ich verwenden? – Wouter
'print (dir (variable))' wird wahrscheinlich viele Optionen offenbaren. Sie könnten damit beginnen, die logischsten zu versuchen. Die Dokumentation kann auch helfen. – Evert