Обновление:
Основываясь на ваших комментариях ниже, вы просматриваете виджеты из библиотеки ttkwidgets
.
Исходя из этого, я немного покопался на их сайте документов и в самом коде и найденном не существует определенного способа отключения виджета.
На основе этого раздела кода:
![enter image description here](https://i.stack.imgur.com/Yk1Rq.png)
Я могу распечатать все возможные аргументы для ScaleEntry, используя .keys()
.
Пример кода:
from ttkwidgets import ScaleEntry
import tkinter as tk
window = tk.Tk()
scaleentry = ScaleEntry(window, scalewidth=200, entrywidth=3, from_=0, to=20)
scaleentry.config_entry(justify='center')
print(scaleentry.keys())
scaleentry.pack()
window.mainloop()
Ключевые результаты:
['borderwidth', 'class', 'compound', 'cursor', 'entryscalepad', 'entrywidth', 'from', 'height', 'orient', 'padding', 'relief', 'scalewidth', 'style', 'takefocus', 'to', 'width']
Из списка и сканирования кода для ScaleEntry такого аргумента не существует, чтобы отключить эту шкалу. Поэтому я почти пришел к выводу, что это было невозможно. Однако после прочтения кода, который составляет класс ScaleEntry, я обнаружил следующую строку:
![enter image description here](https://i.stack.imgur.com/rGBDA.png)
Я понимаю, что мы все еще можем отключить его, ориентируясь на внутренний класс атрибут _scale
для победы! Это связано с тем, что в конце дня виджет ScaleEntry
представляет собой просто фрейм tk, имеющий 2 атрибута класса. A ttk.Scale
и a ttk.Entry
.
Пример:
from ttkwidgets import ScaleEntry
import tkinter as tk
window = tk.Tk()
state = True
scaleentry = ScaleEntry(window, scalewidth=200, entrywidth=3, from_=0, to=20)
scaleentry.config_entry(justify='center')
print(scaleentry.keys())
scaleentry.pack()
def toggle_state():
global state
if state:
scaleentry._scale.state(['disabled'])
scaleentry._entry.state(['disabled'])
state = False
else:
scaleentry._scale.state(['!disabled'])
scaleentry._entry.state(['!disabled'])
state = True
tk.Button(window, text='Toggle Scale', command=toggle_state).pack()
window.mainloop()
Пример перед переключением:
![enter image description here](https://i.stack.imgur.com/KQ77T.png)
Пример после переключения:
![enter image description here](https://i.stack.imgur.com/3DYYj.png)