【问题标题】:theme style not working on other screens and dialogs KIVY - KIVYMD主题样式不适用于其他屏幕和对话框 KIVY - KIVYMD
【发布时间】:2022-09-24 22:23:37
【问题描述】:

我创建了一个更改应用程序颜色的按钮。在主屏幕中它工作得很好,但是它不会改变对话框和其他屏幕中主题的颜色。我不知道是否需要在每个屏幕(使用屏幕管理器)或我创建的 dialagos 中手动更改主题颜色。

这是我的代码

class MainMenu(Screen):
   def build(self):
       self.theme_cls.primary_palette = \"Cyan\"
       self.theme_cls.accent_palette = \"Indigo\"  # Lime
       self.theme_cls.theme_style = \"Light\"

       sm.add_widget(SignInScreen(name=\'sign_in_screen\'))
       sm.add_widget(MainMenu(name=\'main_menu\'))
       sm.add_widget(TermsConditionsScreen(name=\'terms_conditions_screen\'))
       sm.add_widget(MyInformation(name=\'my_information\'))

       return sm

   def color_changer(self):
       if self.theme_cls.theme_style == \"Dark\":
           self.theme_cls.theme_style = \"Light\"
           self.theme_cls.primary_palette = \"Cyan\"
           self.theme_cls.accent_palette = \"Indigo\"
       elif self.theme_cls.theme_style == \"Light\":
           self.theme_cls.theme_style = \"Dark\"
           self.theme_cls.primary_palette = \"DeepPurple\"
           self.theme_cls.accent_palette = \"Teal\"

这是我的问题的一些截图(在最后一张图中,文字的颜色是白色)

  • 尝试在App\'s 实例的build 方法中设置它们,它们应该在任何地方都可以始终如一地工作。

标签: python kivy themes kivymd


【解决方案1】:

您应该在App/MDApp 的实例中编辑theme_cls 的属性,以使所有其他屏幕将更改应用于其主题。在Screen 的实例中更改它,如您的示例class MainMenu(Screen),只会更改该屏幕的主题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 2021-06-14
    • 2023-01-17
    • 2016-05-29
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多