这是我的代码:
master = Tk()
var1 = IntVar(master)
var1.set(1)
Checkbutton(master, text = 'check', variable = var1)
Button(text = 'submit', command = master.quit')
check = var1.get()
它将默认设置为正在检查,但即使我在GUI上取消选中它并点击提交,检查的值仍为1.
为什么取消选中复选框的操作未注册?
答案 0 :(得分:0)
首先关闭代码,你已经证明我们不会因为某些原因而工作。
在'
之后你有一个master.quit
,你也试图创建一个按钮而不将其分配给窗口或框架。您尚未使用pack()
,grid()
或place()
将小部件放入窗口。如果IntVar()
,则无需在内部分配master的值。
您认为IntVar()
的值未发生变化的原因很可能是因为您在实例化程序时已将IntVar()
的值分配给变量check
。
使用您向我们展示的代码,没有任何内容正在更改或更新check
的值。
相反,您应该使用可以调用的内容来检查var1
的当前值,就像函数一样。
这是一个简单的程序,显示每次选中或取消选中框时会发生什么。
import tkinter as tk
master = tk.Tk()
var1 = tk.IntVar()
var1.set(1)
tk.Checkbutton(master, text = 'check', variable = var1).pack()
def print_var1():
print(var1.get())
tk.Button(master, text = "Print Var1", command = print_var1).pack()
tk.Button(master, text = 'Close', command = lambda: master.destroy()).pack()
master.mainloop()