2015-02-06 69 views
0

我想要一個按鈕來更改某個小部件的文本。用戶將按下啓動主功能的按鈕change_text。然後該程序將等待,直到用戶將文本提供給Entry,然後按下Enter按鈕。 target_widget將改變其文本,程序將繼續。程序暫停,直到用戶輸入文本並按下按鈕

下面是一些代碼類似於我的工作:

from Tkinter import * 

root = Tk() 
root.grid() 

CIN = StringVar(root) 
COUT = StringVar(root) 

entry = Entry(root, textvariable = CIN) 
prompt = Label(root, textvariable = COUT) 
target_widget = Label(root, text = '') 
enter_button = Button(root, command = proceed) 
change_text_button = Button(root, command = change_text) 

def change_text(): 
    COUT.set("Enter text to entry") 
    # Wait until user presses enter_button 
    input_text = CIN.get() 
    target_widget['text'] = input_text 

def proceed(): 
    # continue program 
    pass 

change_text_button.grid(row=0, column=0) 
enter_button.grid(row=0, column=1) 
target_widget(row=0, column=2) 
prompt.grid(row=1, column=0) 
entry.grid(row=1, column=1) 

root.mainloop() 

我如何有計劃等到用戶按下Enter

+0

你忘了問一個問題。 – 2015-02-06 20:16:08

回答

0

您的代碼的第一個問題是change_textproceed函數是在您的小部件之後定義的,所以當解釋器解析時,它不知道這些函數在哪裏。只需在創建您的小部件之前將它們放入即可。

你的第二個問題是,你綁到電網target_widget,但你實際上是試圖調用具有相同名稱不存在的功能:

target_widget(row=0, column=2) 

將其更改爲:

target_widget.grid(row=0, column=2) 

您也可以使用調用回調的Button的一些文本。更改此:

change_text_button = Button(root, command = change_text) 

要這樣:

change_text_button = Button(root, text='Change Text Button', command = change_text) 

哪個更暗示和理解。