Python 程序暂停,直到用户输入文本并按下按钮
我想有一个按钮来改变一些小部件的文本。用户将按下change_text按钮,启动主功能。然后,程序将等待,直到用户为条目提供文本,然后按下Enter按钮。目标_小部件将更改其文本,程序将继续 下面是一些与我正在编写的代码类似的代码:Python 程序暂停,直到用户输入文本并按下按钮,python,tkinter,Python,Tkinter,我想有一个按钮来改变一些小部件的文本。用户将按下change_text按钮,启动主功能。然后,程序将等待,直到用户为条目提供文本,然后按下Enter按钮。目标_小部件将更改其文本,程序将继续 下面是一些与我正在编写的代码类似的代码: from Tkinter import * root = Tk() root.grid() CIN = StringVar(root) COUT = StringVar(root) entry = Entry(root, textvariable = CIN)
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键?代码的第一个问题是,更改文本和继续函数是在小部件之后定义的,因此当解释器进行解析时,它不知道这些函数在哪里。只需将它们放在创建小部件之前 您遇到的第二个问题是,您正在绑定到grid target_小部件,但实际上您正在尝试使用相同的名称调用一个不存在的函数:
target_widget(row=0, column=2)
将其更改为:
target_widget.grid(row=0, column=2)
您还可以为调用回调的按钮使用一些文本。更改此项:
change_text_button = Button(root, command = change_text)
为此:
change_text_button = Button(root, text='Change Text Button', command = change_text)
更具启发性和可理解性。你忘了问问题。