(長的問題)轉換Tkinter的文本框進入Python變量
我試着寫一段代碼使用Tkinter的文本框,當按下一個按鈕,將文件路徑從用戶。然後它會將該文本框條目轉換爲附加到普通python變量的字符串,以便稍後可以在該函數中使用該變量來使用該文件。我附加的代碼可以使標籤複製文本框條目,但我不能在「普通Python代碼」中使用該變量或myvar。另外,在代碼中,我嘗試通過函數mywarWritten返回myvar.get(),但是我不能設置一個等於mywarWritten(參數)的變量,因爲這取決於按下按鈕之前不會發生的文本框條目。當按下按鈕時,打印功能將打印語句,但當功能設置爲等於嘗試時,請不要返回。
(簡稱)
我想帶一個值,或字符串,從使用Tkinter的文本框中鍵入用戶,並使用條目作爲普通的Python變量。優選地,文本框中的值僅在按下按鈕時才被採用。
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()
感謝您的幫助提前。
分配給按鈕的函數無法返回值,因爲沒有人可以接收此變量。 'attempt = ...'和'python_variable = ...'行是無用的,因爲它們在'Entry'仍然empy時在腳本開始時執行。你必須知道,只有分配給'Button'或其他小部件的函數中的代碼纔有意義。函數以外的所有內容只能執行一次 - 在腳本開始時執行 - 僅用於構建GUI。 – furas
謝謝,這很有道理。因此,我不應該試圖將文本輸入出來,而是應該將與該按鈕相關的我的函數(未顯示)正確? – HarleyH
是的,你必須做一切功能。 – furas