python - 我将如何更改我的应用程序的背景颜色?
问题描述
我是使用 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()
解决方案
推荐阅读
- kubernetes - Kubernetes 浪费资源
- api - npm request - 用于 twitch 数据的自定义 HTTP 标头
- spring - 获取 java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder 更新 Spring Cloud 版本到 Brixton.SR6 后
- javascript - ReactJS - 如何将字符串中的html元素列表作为html元素返回
- elasticsearch - 将多类型索引迁移到单类型索引
- node-red - 无法使用 Switch 节点可视化我的数据
- android - Android - Kotlin:在扩展应用程序的类中实例化一个对象并在所有活动中使用它
- javascript - vue组件上的js函数
- javascript - SAPUI5 表在获取选定行数据时出现多选错误
- sql - 是否有可能将单元格数据拆分为 Oracle 中的多个列