Обновление существующих стилей тога-боксов
Пытаюсь создать простое приложение для игры с алкоголем, используя BeeWare с Toga, Briefcase и Python.
Удар о стену при попытке динамически обновить определенные визуальные элементы программы.
Игра в основном печатает задачу на экране, оформленную определенными цветами.
Печать задач и обновление для новой с помощью кнопки работает нормально, но изменение цвета фона - нет. В справочнике / документации по тоге не упоминается, как это сделать, и ни один из примеров, которые я нашел, также не касается этого.
Мой код:
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW, CENTER
from appname.lists import challenges, colors
import random
class appname(toga.App):
fullist = challengelist
def startup(self):
main_box = toga.Box(style=Pack(alignment=CENTER))
challenge = self.getChallenge(self)
textcolor, bckcolor = random.choice(list(colors.items()))
self.challenge_label = toga.Label(
'{}'.format(challenge),
style=Pack(text_align=CENTER,padding=50,font_size=50,color=textcolor))
self.challenge_box = toga.Box(style=Pack(
direction=COLUMN,
background_color=bckcolor
)
)
refresh_button = toga.Button(
'New Challenge',
on_press=self.newChallenge
)
self.challenge_box.add(self.challenge_label)
self.challenge_box.add(refresh_button)
main_box.add(self.challenge_box)
self.main_window = toga.MainWindow(title=self.formal_name)
self.main_window.content = main_box
self.main_window.show()
def getChallenge(self,widget):
return random.choice(self.fullist)
def newChallenge(self,widget):
self.challenge_label.text= random.choice(self.fullist)
self.challenge_box.style.update(background_color=random.choice(list(colors.values(()))
def main():
return appname()