Python:ttk:禁用/启用按钮

yeg*_*ich 8 python ttk

我想根据一些内部逻辑改变ttk.Button的状态.我创建了一个按钮并将样式与它相关联:

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)
Run Code Online (Sandbox Code Playgroud)

以下声明无效:

style.configure('CB.TButton', state='disabled')
Run Code Online (Sandbox Code Playgroud)

但是当我创建这样的按钮时,它被禁用:

cardBtn = ttk.Button(top, text="Make SD card", style='CB.TButton', state='disabled', command = cardCreateCallBack).grid(column=1, row=5)
Run Code Online (Sandbox Code Playgroud)

如何在Python中更改ttk.Button状态?

操作系统:Ubuntu 13.10

Python:2.7.5+

Fré*_*idi 9

按钮状态不是其风格的一部分.您可以使用state()方法来修改它:

cardBtn.state(["disabled"])   # Disable the button.
cardBtn.state(["!disabled"])  # Enable the button.
Run Code Online (Sandbox Code Playgroud)

  • 我想我已经找到了问题:你不能创建一个对象,如果你立刻放置它(`.grid()`或`.pack()`).它必须分两个阶段完成:创建一个对象,然后放置它.这样你就可以使用它的句柄了. (2认同)