如何在 Tkinter 中禁用(灰显)一个 Checkbutton?

Posted

技术标签:

【中文标题】如何在 Tkinter 中禁用(灰显)一个 Checkbutton?【英文标题】:How can I disable (grey out) a Checkbutton in Tkinter? 【发布时间】:2014-01-08 08:20:30 【问题描述】:

我不知道如何让 Tkinter Checkbutton 变灰。

我尝试使用state=DISABLED,但它不起作用,我收到一个错误提示

_tkinter.TclError:错误选项“-enable”:必须是 -column、-columnspan、-in、-ipadx、-ipady、-padx、-pady、-row、-rowspan 或 -sticky

如何暂时禁用Checkbutton

【问题讨论】:

【参考方案1】:

使用state=DISABLED 是正确的方法。

但是,您一定是把它放在了错误的地方。 stateCheckbutton的一个选项,所以需要这样使用:

Checkbutton(state=DISABLED)

下面是一个示例脚本来演示:

from Tkinter import Tk, Checkbutton, DISABLED
root = Tk()
check = Checkbutton(text="Click Me", state=DISABLED)
check.grid()
root.mainloop()

如果您想以编程方式更改检查按钮的状态,请使用Tkinter.Checkbutton.config

下面是一个示例脚本来演示:

from Tkinter import Tk, Checkbutton, DISABLED
root = Tk()
def click():
    check.config(state=DISABLED)
check = Checkbutton(text="Click Me", command=click)
check.grid()
root.mainloop()

【讨论】:

是的,我重写了它并且它有效。一定是做错了什么。谢谢! 值得注意的是,与state=ENABLED 的直觉相反,激活小部件返回是不是。其实是state=NORMAL...【参考方案2】:

试试:

Checkbutton.configure(state=DISABLED)

这个解决方案对我有用。

【讨论】:

以上是关于如何在 Tkinter 中禁用(灰显)一个 Checkbutton?的主要内容,如果未能解决你的问题,请参考以下文章

在 TreeNode 编辑器中禁用或灰显节点

如何在不禁用标签的情况下灰显标签?

当显示 HTML 文本时,JLabel 禁用时不灰显

extjs 表单元素中的 Extjs 组合框在禁用时未灰显

禁用(灰显)QTreeView 中的某些行

在 tkinter 中禁用鼠标双击事件