首页 > 解决方案 > 我将如何更改我的应用程序的背景颜色?

问题描述

我是使用 Kivy 和 KivyMD 的新手,并且在网上查看过,但仍然不知道如何在我的上下文中根据 RGBA 更改背景颜色。抱歉,这似乎是一个简单的问题和答案,但我不知道该怎么做。我的代码在下面,非常感谢任何查看此代码的人。

KV = '''
<Box@BoxLayout>:

Widget:
    canvas:
        Color:
            rgba: 168, 124, 90, 1
        Rectangle:
            size: self.size
            pos: self.pos
             

BoxLayout:
        Rectangle:    
        size: self.size
            
'''
            
screen_helper = """
ScreenManager:
    MenuScreen:
    HomeScreen:
    BreakScreen:
    SettingsScreen
        
<MenuScreen>:
    name: 'menu'
        
    MDLabel:
        rectangle:
        background_normal: ''
        background_color: 168, 124, 90, 1           
        size:500, 500
        pos_hint: {'center_x':0.95, 'center_y':0.84}
                
    MDLabel:
        text: "Welcome to"
        font_style: 'H2'
        size:500, 500
        pos_hint: {'center_x':0.95,'center_y':0.84}
        
    MDLabel:
        text: "LEAF"
        font_style: 'H3'
        size:500, 500
        pos_hint: {'center_x':1.045,'center_y':0.7}
        
        
    MDFlatButton:
        text: 'Calendar'
        font_style: 'H6'
        pos_hint: {'center_x':0.091,'center_y':0.65}
        on_release:
            app.show_datepicker() 
            
            
    MDFlatButton:
        text: 'Home'
        font_style: 'H6'
        pos_hint: {'center_x':0.076,'center_y':0.57}
        on_press: root.manager.current = 'home'
        
    MDFlatButton:
        text: 'Settings'
        font_style: 'H6'
        pos_hint: {'center_x':0.09,'center_y':0.49}
        on_press: root.manager.current = 'settings'
        
            
    MDRectangleFlatButton:
        text: 'Continue'
        font_style: 'H6'
        pos_hint: {'center_x':0.61,'center_y':0.345}
        on_press: root.manager.current = 'home'


    
<HomeScreen>:
    name: 'home'    
                
    MDRectangleFlatButton:
        text: 'Return to menu'
        font_style: 'H6'
        pos_hint: {'center_x':0.61,'center_y':0.345}
        on_press: root.manager.current = 'menu'
    
<BreakScreen>:
    name: 'break'
    
<BreakScreen>:
    name: 'settings'
        
        
"""  

class MenuScreen(Screen):
    pass


class HomeScreen(Screen):
    pass


class BreakScreen(Screen):
    pass

class SettingsScreen(Screen):
    pass

class ContentNavigationDrawer(BoxLayout):
    pass

class ScatterTextWidget(BoxLayout):
    text_colour = ObjectProperty([1, 0, 0, 1])

    def __init__(self, **kwargs):
        super(ScatterTextWidget, self).__init__(**kwargs)

    def change_label_colour(self, *args):
        colour = [random.random() for i in xrange(3)] + [1]
        self.text_colour = colour

    
sm = ScreenManager()
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(HomeScreen(name='profile'))
sm.add_widget(BreakScreen(name='upload'))
sm.add_widget(SettingsScreen(name='settings'))


class LeafApp(MDApp):
    

    def show_datepicker(self):
        picker = MDDatePicker(callback=self.got_date)
        picker.open()
    
    def got_date(self, the_date):
        print(the_date.year)
        print(the_date.month)
        print(the_date.day)
        
        
        
    data = {
        'mail': 'Gmail', 
        'calendar': 'Calendar', 
        'plus': 'Add Meeting',
    }        


    def build(self):
        screen = Builder.load_string(screen_helper)
        return screen
    
    def set_error_message(self, instance_textfield):
        self.screen.ids.text_field_error.error = True
        
        
        
        
   



LeafApp().run()

标签: pythonkivykivymd

解决方案


推荐阅读