Как изменить текст кнопки ttk?
Есть главная переменная nmbr, которая является списком (изначально списком списков). От неё зависят как тексты в кнопках, так и их действие. Сама же переменная зависит от действий кнопок. Так вот, действия кнопок меняют переменную, но переменная при этом не хочет менять текст в кнопках. Методы root.update и root.after не помогают. Вот начало с функцией для определения текста кнопок:
from tkinter import *
from tkinter.ttk import *
nmbr = [i for i in range(81)]
for i in range(len(nmbr)) :
nmbr[i] = [j for j in range(1, 10)]
def butt_txt(i):
nmb = nmbr[i]
if type(nmb) == int : nm = nmb
else :
nm = []
for i in range(1, 10) :
if i not in nmb : nm.append(" ")
else : nm.append(i)
nm = f'{nm[0]} {nm[1]} {nm[2]}\n{nm[3]} {nm[4]} {nm[5]}\n{nm[6]} {nm[7]} {nm[8]}'
return nm
Вот класс кнопок:
class MyButton(Frame):
def __init__(self, parent, text="", height = 35, width = 35, *args, **kwargs):
Frame.__init__(self, parent, height=height, width=width)
self.pack_propagate(0)
self._btn = Button(self, text = text, *args, **kwargs)
self._btn.pack(fill = BOTH, expand = 1)
Вот так они упакованы:
class Example(Frame):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.master.title("....")
b0 = MyButton(self, text= butt_txt(0), style = butt_stl(0), command = lambda: cmnd(0))
b0.grid(row=0, column=0)
.....
self.pack()
Функцию свою они исполняют - в зависимости от того, какая кнопка нажата и что в дальнейшем выбрано, меняется переменная nmbr. Как обновить текст кнопки после того, как изменилась nmbr?