[英]Python: Button widget in Tkinter
我剛剛開始使用Tkinter在Python 2.7中進行GUI編程。
我想要一個瀏覽按鈕,單擊該按鈕將打開Windows File Explorer,並將所選文件的路徑返回到變量。 我希望以后再使用該路徑。
我正在遵循此處給出的代碼。 它輸出一個顯示5個按鈕的窗口,但是這些按鈕什么也不做。 單擊第一個按鈕時,它不會打開所選文件。
同樣,在單擊第二個按鈕時,將askopenfilename(self)
函數,並且該函數應返回文件名。 就像我提到的那樣,以后我需要該文件名。
如何將函數返回的值轉換為某些變量以備將來使用?
在按鈕的回調中使用return
毫無意義。 它不會返回任何地方。 進行回調保存數據的方法是將其存儲在全局變量中,如果使用類,則將其存儲在實例變量中。
def fetchpath():
global filename
filename = tkFileDialog.askopenfilename(initialdir = 'E:')
FWIW(與問題無關):您犯了一個非常常見的錯誤。 在python中,當您執行foo=bar().baz()
, foo
將使用baz()
的值。 因此,當您這樣做時:
button = Button(...).pack()
button
將使用pack()
的值,該值始終返回None
。 如果希望保存對正在創建的小部件的實際引用,則應將小部件的創建與小部件的布局分開。 即使您不是,將兩者分開也是一個好習慣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.