Как мне изменить настройки пользовательского виджета в kivy?
У меня есть этот код, где я хочу кнопку, чтобы вызвать изменение пользовательской кнопки. Мое решение изменяет цвет всех пользовательских кнопок только после их нажатия. Как правильно заменить кнопки?
питон
class B_SettingScreen(Screen):
def change_color(self):
Factory.MainButton.background_normal = "z_MainButtonColorRed.jpg"
kivy
<MainButton@Button>:
font_size: 18
markup: True
size_hint: 0.25,0.06
color: 0,0,0,1
background_normal: "z_MainButtonColor.jpg"
<B_SettingScreen>:
MainButton:
text: "[b][font=Arial]Change Color[/b][/font]"
pos_hint: {"center_x":0.25, "y":0.5}
on_release: root.change_color()
1 ответ
Нашел решение (благодаря @EL3PHANTEN в другом вопросе, который я задал), просто измените его с помощью класса приложения!
ру
class Bobolo(App):
bg_but = StringProperty("z_MainButtonColor.jpg")
def build(self):
Window.clearcolor = 1,1,1,1
return A_ScreenManager()
def change_bg(self):
self.bg_but = "z_MainButtonColorRed.jpg"
киловольт
<MainButton>:
id: MainButton
font_size: 18
markup: True
size_hint: 0.25,0.06
color: 0,0,0,1
background_normal: app.bg_but
<B_SettingScreen>:
MainButton:
text: "[b][font=Arial]Change Color[/b][/font]"
pos_hint: {"center_x":0.25, "y":0.5}
on_release: app.change_bg()