2015-02-06 70 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) 

哪个更暗示和理解。