Tkinter:有没有办法默认检查复选框?

Posted

技术标签:

【中文标题】Tkinter:有没有办法默认检查复选框?【英文标题】:Tkinter: is there a way to check checkboxes by default? 【发布时间】:2016-10-02 09:08:26 【问题描述】:

我有这段代码可以创建一个简单的复选框:

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

【问题讨论】:

刚刚在我的机器上试了一下,效果很好。您的代码中的其他地方一定有问题。 它应该可以工作。如果没有,请提供与此相关的完整代码。 【参考方案1】:

您的CheckVar 是一个局部变量。它正在收集垃圾。将其保存为对象属性。此外,您可以一步创建变量并将其全部初始化:

self.CheckVar = IntVar(value=1)
self.checkbutton = Checkbutton(..., variable = self.CheckVar)

你也可以使用checkbutton的select函数:

self.checkbutton.select()

【讨论】:

我收到'Checkbutton' has no attribute 'select' ttk 0.3.1 @xjcl: 那么你必须使用来自 ttk 的 Checkbutton 而不是 tkinter。【参考方案2】:

我想你要找的函数是.select()

此函数选择复选按钮(可以从函数名称中推测)

在定义小部件后尝试调用此函数:

from Tkinter import *

CheckVar = IntVar()
self.checkbutton = Checkbutton(self.root, text = "Test", variable = CheckVar)
self.checkbutton.select()

通过在创建小部件后立即调用该函数,它看起来好像是默认选中的。

【讨论】:

【参考方案3】:

只是添加到 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()

【讨论】:

【参考方案4】:

我使用的是 ttk,唯一有效的是

self.checkbutton.state(["selected"])

通过检查状态

"selected" in self.checkbutton.state()

【讨论】:

【参考方案5】:
var4 = IntVar(value=1)
Checkbutton(root, text="New", variable=var4, bg="light green").grid(row=12, column=0)

这将check所有复选框。

【讨论】:

以上是关于Tkinter:有没有办法默认检查复选框?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Tkinter 和函数找到选择了哪个检查按钮?

将复选框检查图像更改为自定义图像

有没有办法预先检查或避免 Google 的 Gmail / Google 日历 OAuth 审批流程中的范围复选框?

Tkinter中可变大小的复选框列表?

Python Tkinter Checkbutton 与其他小部件对齐

修改 Python Tkinter 中的默认字体