我正在尝试使用它,以便在按下tkinter按钮时分配一个值,然后退出gui。
我的问题是root.quit除了调用它的函数之外,甚至嵌套函数都没有作用。
代码:
from tkinter import Tk,Button
def buttonDialogWindow():
root = Tk()
def buttonPress(isHeadArg):
#Do something
root.quit
Button(root, text='Front of String', command = buttonPress(1)).pack()
Button(root, text='Back of String', command = buttonPress(0)).pack()
root.protocol("WM_DELETE_WINDOW", root.quit)
root.mainloop()
buttonDialogWindow()
运行代码使按钮出现。单击它们对GUI无效,并且mainloop不会退出。
答案 0 :(得分:0)
答案:
问题在于,当我设置command的值时,我在调用函数而不是声明它。使用括号使该函数被调用-如果您没有参数,通常的写方法是
command = buttonPress
如果您确实有参数,我发现了使用lambda的解决方法:我的代码当前具有
command = lambda: buttonPress(1)
用于命令。