Установить текстовую переменную 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 ответ

Решение

У меня нет репутации, чтобы комментировать, но для меня ваш код класса работает нормально.

Другие вопросы по тегам