Установить текстовую переменную ttk.Label внутри класса
Я искал вокруг и не могу найти очевидный ответ на этот вопрос. Я пытаюсь создать подкласс ttk.Label для добавления некоторых функций, а именно, чтобы он мог динамически обновлять отображение меток при вызове извне методов. Это работает:
root = Tk()
label = ttk.Label(root)
label.pack()
var = StringVar()
label['textvariable'] = var # or label.config(textvariable=var)
var.set('String to show on screen')
root.mainloop()
Тем не менее, когда я пытаюсь это, это ничего не показывает:
class NewLabel(ttk.Label):
def __init__(self, parent=None):
ttk.Label.__init__(self, parent)
self.pack()
self.var = StringVar()
self.config(textvariable=self.var)
self.var.set('String to show on screen')
root = Tk()
label = NewLabel(root)
root.mainloop()
Любая помощь будет принята с благодарностью.
1 ответ
Решение
У меня нет репутации, чтобы комментировать, но для меня ваш код класса работает нормально.