(Long Frage)Convert Tkinter Textbox Einstieg in Python Variable
Ich versuche, ein Stück Code zu schreiben, die einen Dateipfad von dem Benutzer unter Verwendung eines tkinter Textbox nehmen wird, wenn eine Taste gedrückt wird. Es würde dann diesen Textfeld-Eintrag in einen String umwandeln, der an eine normale Python-Variable angehängt ist, so dass ich diese Variable später in einer Funktion verwenden kann, um diese Datei zu verwenden. Der Code, den ich angehängt habe, kann dazu führen, dass das Label den Textfeldeintrag kopiert, aber ich kann diese Variable oder myvar nicht in "normalem Python-Code" verwenden. Außerdem habe ich im Code versucht, myvar.get() über die Funktion mywarWritten zurückzusenden, aber ich kann keine Variable wie mywarWritten (Parameter) setzen, da dies von dem Textfeldeintrag abhängt, der nicht vor dem Drücken der Schaltfläche passiert. Wenn die Taste gedrückt wird, druckt die Druckfunktion die Anweisung, aber sie kehrt nicht zurück, wenn die Funktion gleich gesetzt ist.
(kurz)
Ich mag einen Wert nehmen, oder String, von dem Benutzer eines Tkinter Textfeld verwenden, und verwenden Sie den Eintrag als ein normales Python-Variable. Vorzugsweise würde der Wert in der Textbox nur genommen, wenn eine Taste gedrückt wird.
from Tkinter import *
import Tkinter as tk
root = Tk()
root.title("MyApp")
myvar = StringVar()
def mywarWritten(*args):
print "mywarWritten",myvar.get()
please = myvar.get()
return please
#trying to make the function return the textbox entry but fails
attempt = mywarWritten()
print "plz %s" % (attempt)
#trying to just set it equal too but also fails
python_variable = myvar.get()
label = Label(root, textvariable=myvar)
label.pack()
text_entry = tk.Entry(root, textvariable=myvar)
button1 = tk.Button(root, text="Back to Home", command=lambda: mywarWritten())
button1.pack()
text_entry.pack()
#trying attempt and pythonvariable in "normal python code"
print attempt
print pythonvariable
root.mainloop()
Vielen Dank für die Hilfe im Voraus.
Funktion, die Taste zugewiesen ist, kann keinen Wert zurückgeben, da niemand diese Variable empfangen kann. Die Zeilen 'versuch = ...' und 'python_variable = ...' sind nutzlos, weil sie zu Beginn des Skripts ausgeführt werden, wenn 'Entry' noch immer empy ist. Sie müssen lernen, dass nur Code innerhalb von Funktionen, die 'Button' oder anderen Widgets zugewiesen sind, sinnvoll ist. Alles außerhalb von Funktionen wird nur einmal ausgeführt - beim Start des Skripts - und wird nur zum Erstellen einer GUI verwendet. – furas
Danke das macht sehr viel Sinn. Also, anstatt zu versuchen, den Texteintrag herauszubringen, sollte ich meine Funktion (nicht gezeigt) in Bezug auf die Schaltfläche richtig einbringen? – HarleyH
Ja, Sie müssen alles innerhalb von Funktionen tun. – furas