2015-12-13 797 views
0

我有一個定義了tkinter窗口並在其中運行的函數。該窗口中有一個按鈕,我需要該按鈕來執行return語句並返回該函數的值。如何從tkinter按鈕回調中返回值

做其他比按鈕回調運行argumentless功能事物的方式似乎是lambda,但我不能想出一個辦法與lambda做到這一點,從拉姆達寄存器返回的值作爲返回值lambda

我的代碼的要點是這樣的:

from tkinter import * 

def function(): 
    root = Tk() 

    entry = Entry(root) 
    entry.pack() 

    button = Button(root, text = "I'm a button", command = return entry.get()) #Does not work, you can't do this in a callback 
    button.pack() 

    root.mainloop() 

我試圖找出是如何重寫return語句,以便它是有效的command說法。

+1

'return'對'Button'沒用,因爲沒有人可以接收到返回值。 – furas

回答

2

你不能這樣做。最好的辦法是使用一個函數,但我不確定爲什麼你會這麼做。看起來有點奇怪......正如所評論的,Tkinter腳本的運行方式與普通的Python腳本不同,所以沒有任何東西可以使用返回的值。如果您需要它,將其作爲變量存儲。

我只是創建一個函數,將其存儲爲一個變量。

def foo(): 
    gah=entry.get() 
    # return entry.get() 
    # stuff or no stuff 

button=Button(root, text="ghost", command=foo) 
+0

但它會是一個局部變量。最後,我只是使用'global'來達到這個目的(並且忽略了使用它們的感覺:^ |) –