Как мне изменить настройки пользовательского виджета в 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()
Другие вопросы по тегам