如何在用户输入输入窗口小部件的输入到称为它的函数的输入后才从功能"提示"中返回。
def prompt(to_speak,label_text,prompt):
name = ""
main = Toplevel()
label = Label(main,text = label_text)
label.grid()
var = StringVar()
entry = Entry(main)
entry.focus()
entry.grid()
entry.config(textvariable = var)
def get_input():
print("function call has occured")
global name
name = var.get()
if not input:
speak(prompt)
else:
main.destroy()
button = Button(main,text = "Proceed",fg = "white",bg = "#1287A8",command = get_input)
button.grid()
speak(to_speak)
if name:
return name
main.mainloop()
我已经定义了回调函数" get_input",以在按下"继续"按钮后获取输入窗口。它将检查用户是否输入输入。如果输入它将破坏高级级别,我希望将输入返回到称为"提示"的函数,如果用户未输入输入,它将警告用户。
但是,如果用户输入了输入,那么我想将该输入返回到称为"提示"函数的函数。
我尝试使用IF条件来实现它,但是如果仅检查条件一次,则在按下"继续"按钮之前。
是否可以在执行" get_input"功能之后的每次检查"如果"条件。
否则还有其他方法可以实现这一目标?
,如注释
中提到tkinter.widget.wait_window-method
我希望只有在用户输入输入并将用户输入的值返回呼叫者函数之后才能破坏小部件"主"。wait_window((确实做到了。
main.wait_window(main) #in my case the parent widget is main and the widget to be destroyed is also main.
return name
wait_window((之后的语句直到所需的小部件被销毁后才执行。仅在预期的小部件被销毁后,将执行wait_window()
之后的语句。
因此,在用户输入输入后,主要小部件将不会被销毁,一旦进入输入,主窗口小部件就会被销毁,并且下面的语句wait_window((即return name
被执行。