要检查的tkinter设置默认复选框将值返回为“已检查”

时间:2017-08-16 20:35:36

标签: python tkinter

这是我的代码:

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.

为什么取消选中复选框的操作未注册?

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()