Python:ttk:禁用/启用按钮
我想根据一些内部逻辑更改ttk.按钮的状态。我创建一个按钮并将其与样式关联:Python:ttk:禁用/启用按钮,python,ttk,Python,Ttk,我想根据一些内部逻辑更改ttk.按钮的状态。我创建一个按钮并将其与样式关联: cardBtnStyle = ttk.Style() cardBtnStyle.configure('CB.TButton') cardBtn = ttk.Button(top, text="Make SD card", style='CB.TButton', command = cardCreateCallBack).grid(column=1, row=5) 以下声明无效: style.configure('CB
cardBtnStyle = ttk.Style()
cardBtnStyle.configure('CB.TButton')
cardBtn = ttk.Button(top, text="Make SD card", style='CB.TButton', command = cardCreateCallBack).grid(column=1, row=5)
以下声明无效:
style.configure('CB.TButton', state='disabled')
但当我创建这样一个按钮时,它被禁用:
cardBtn = ttk.Button(top, text="Make SD card", style='CB.TButton', state='disabled', command = cardCreateCallBack).grid(column=1, row=5)
如何在Python中更改ttk.Button状态
操作系统:Ubuntu 13.10
Python:2.7.5+/p>按钮状态不是其样式的一部分。您可以使用该方法对其进行修改:
cardBtn.state(["disabled"]) # Disable the button.
cardBtn.state(["!disabled"]) # Enable the button.
我得到以下错误:Tkinter回调回溯异常(最近一次调用最后一次):文件“/usr/lib/python2.7/lib tk/Tkinter.py”,第1473行,在调用返回self.func(*args)文件“/usr/lib/python2.7/lib tk/Tkinter.py”,第534行,在callit func(*args)文件“/viaVPN Production.py”,第42行,在state\u thread cardBtn.state中([“disabled”])AttributeError:“NoneType”对象没有属性“state”@yegorich,该错误消息表示
cardBtn
设置为None
。但是,您问题中的代码为其分配了ttk.Button
的实例,因此不应该是这种情况。请仔细检查是否正在调用state()
初始化按钮实例后。我想我已经发现了问题:如果您立即放置对象(.grid()
或.pack()
),则无法创建对象。必须分两个阶段完成:创建对象,然后放置对象。这样您可以使用其句柄。