【问题标题】:How to (re)enable tkinter ttk Scale widget after it has been disabled?禁用后如何(重新)启用 tkinter ttk Scale 小部件?
【发布时间】:2017-12-12 08:23:39
【问题描述】:

我试图在禁用后在 Python tkinter 中重新启用我的 Scale 小部件,但它不起作用。我尝试了多种选择,但都没有奏效。

s.state(["normal"]);
s.configure(state='normal');

我得到的错误是:

_tkinter.TclError: unknown option "-state"

【问题讨论】:

  • 您使用的是tkinter.Scale 还是ttk.Scale
  • 我正在使用ttk.Scale
  • 我认为您应该将您的问题稍微改写为How to enable/disable ttk widget,因为解决方案适用于所有问题。我发现你的问题几乎有duplicate,因为有人只对一个按钮感到好奇。
  • 好的,我刚改了。

标签: python tkinter widget ttk tkinter-scale


【解决方案1】:

由于您使用ttk 小部件,因此您需要重新启用小部件的状态是!disabled

根据ttk states

状态规范或 stateSpec 是状态名称的列表,可选地以感叹号 (!) 为前缀,表示该位已关闭。

try:
    import tkinter as tk
    import tkinter.ttk as ttk
except ImportError:
    import Tkinter as tk
    import ttk


root = tk.Tk()

scale = ttk.Scale(root)
scale.pack()

#   disable scale
scale.state(['disabled'])
#   enable scale
scale.state(['!disabled'])

root.mainloop()

【讨论】:

  • 请注意 ttk 和 tkinter 使用一组不同的状态/状态名称。 tkinter 使用 'normal' 是默认值; “禁用”或“禁用”使其可见但不响应/变灰;当鼠标悬停时显示为“活动”状态...例如,按钮变为蓝色,带有 mac aqua 主题。
猜你喜欢
  • 2016-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多