我这里有一个简单的GUI,它假设返回一个布尔值,这取决于是否选中了check按钮。我将布尔变量设置为False,因此复选按钮为空。我不明白的是,当我选中按钮时,绑定到该小部件的函数返回False而不是True。为什么?在
这是密码。。。在
from tkinter import *
from tkinter import ttk
def getBool(event):
print(boolvar.get())
root = Tk()
boolvar = BooleanVar()
boolvar.set(False)
cb = Checkbutton(root, text = "Check Me", variable = boolvar)
cb.bind("<Button-1>", getBool)
cb.pack()
root.mainloop()
当检查空按钮时,功能输出。。。在
^{pr2}$既然按钮被选中了,它不应该返回True
?在
执行绑定回调后,布尔值将更改。举个例子,看看这个:
当您按下check按钮时,第一个输出是
False
,然后是"The value was changed"
,这意味着该值在getBool
回调完成后被更改。在您应该做的是使用
^{pr2}$command
参数来设置回调,看:输出首先是
"The value was changed"
,然后是True
。在对于我的示例,我使用
boolvar.trace
,它在布尔值改变时运行lambda回调('w'
)相关问题 更多 >
编程相关推荐