我有这段代码将创建一个简单的复选框:
from Tkinter import *
CheckVar = IntVar()
self.checkbutton = Checkbutton(self.root, text = "Test", variable = CheckVar)
但是默认情况下此复选框处于未选中状态,我正在寻找一种方法来检查它。
到目前为止我已尝试插入
CheckVar.set(1)
在 CheckVar 之后,但它不起作用。
感谢您的帮助
编辑:这是我的完整代码。当我运行它时,该框仍未选中
from Tkinter import *
class App():
def __init__(self, root):
self.root = root
CheckVar = IntVar()
CheckVar.set(1)
self.checkbutton = Checkbutton(self.root, text = "Test", variable = CheckVar)
self.checkbutton.grid(row=0, column=0,)
root = Tk()
app = App(root)
root.mainloop()
你的
CheckVar
是一个局部变量。它正在收集垃圾。将其保存为对象属性。此外,您可以一步创建变量并初始化它:
self.CheckVar = IntVar(value=1)
self.checkbutton = Checkbutton(..., variable = self.CheckVar)
您还可以使用复选按钮的
select
功能:
self.checkbutton.select()
我认为您正在寻找的功能是
.select()
此函数选择复选按钮(可以从函数名称推测)
尝试在定义小部件后调用此函数:
from Tkinter import *
CheckVar = IntVar()
self.checkbutton = Checkbutton(self.root, text = "Test", variable = CheckVar)
self.checkbutton.select()
通过在创建小部件后立即调用该函数,它看起来就像默认选择的一样。
只是添加到 GunnerStone 的答案 - 因为我正在寻找可以重置我的值/复选框的东西。
如果您出于某种原因想要
de-select
复选框值,请使用 deselect()
:
from Tkinter import *
CheckVar = IntVar()
self.checkbutton = Checkbutton(self.root, text = "Test", variable = CheckVar)
self.checkbutton.deselect()
或使用
toggle
在两者之间切换:
self.checkbutton.toggle()
我正在使用 ttk,我使用
检查
ttk.Checkbutton
self.checkbutton.state(["selected"])
并使用
取消选中它self.checkbutton.state(["!selected"])
您可以使用
检查状态"selected" in self.checkbutton.state() # returns True or False
我以为我只是发布对我有用的示例代码,这会创建一个选中的复选框。
window1 = tkinter.Tk()
check1 = tkinter.IntVar()
checkbox1 = tkinter.Checkbutton(window1, variable=check1, text="")
checkbox1.grid(row=0, column=0)
checkbox1.select()
var4 = IntVar(value=1)
Checkbutton(root, text="New", variable=var4, bg="light green").grid(row=12, column=0)
这将
check
所有复选框。