Я пытаюсь отключить все (TTK) виджетов в кадре, но это, кажется, что масштаб виджет дает мне некоторые проблемы, так как он бросает следующее исключение:Отключение Tkinter TTK шкалы виджет
_tkinter.TclError: unknown option "-state"
Некоторые соответствующий код:
import tkinter as tk
from tkinter import ttk
def disable_widgets(parent):
for child in parent.winfo_children():
child.config(state = 'disabled')
root = tk.Tk()
# Frame full of widgets to toggle
frame_of_widgets = ttk.Frame(root)
frame_of_widgets.pack()
# Button to be disabled
button_to_disable = ttk.Button(frame_of_widgets)
button_to_disable.pack()
# Entry to be disabled
entry_to_disable = ttk.Entry(frame_of_widgets)
entry_to_disable.pack()
# Scale to be disabled
scale_to_disable = ttk.Scale(frame_of_widgets)
scale_to_disable.pack()
# Button that disables widgets in frame
disable_button = ttk.Button(root,text="Disable",command= lambda: disable_widgets(frame_of_widgets))
disable_button.pack()
root.mainloop()
Он работает для кнопки и записи, но не в масштабе. Я думал, что одно из преимуществ ttk заключалось в том, чтобы сделать виджетов более однородными с общими методами и атрибутами, поэтому я предполагаю, что, возможно, я неправильно обращаюсь ко всем трем этим виджетам?
Заранее благодарим за любую помощь!
Это именно то, что мне было нужно, спасибо ! Я ранее пробовал child.state ('disabled'), который также, казалось, работал для кнопки и входа, но не для шкалы. Получается, что это список сделал трюк. Также интересно, что «нормально» и «включено» тоже не работают, поскольку мне нужно использовать «! Disabled». Еще раз спасибо! – Msg