2017-08-16 399 views
-1

这是我的代码:Tkinter的设置默认复选框被选中返回值“选中”

master = Tk() 
var1 = IntVar(master) 
var1.set(1) 
Checkbutton(master, text = 'check', variable = var1) 
Button(text = 'submit', command = master.quit') 
check = var1.get() 

它设置默认为被检查,但即使我取消它的图形用户界面,并点击提交时,支票值仍为1.

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

+0

此代码不会运行。如果你要发布代码,它需要是可运行的代码来说明问题。 –

回答

0

首先代码哟已经表明我们不会因为几个原因而工作。

你有一个'就在master.quit之后,你也试图创建一个按钮,而不必将它分配给一个窗口或框架。您尚未使用pack()grid()place()将窗口小部件放入窗口中。如果是IntVar(),则不需要指定主内部的值。

您认为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()