我想知道是否可以通过按下按钮来更改工具栏背景颜色。我有6个不同颜色的按钮,当我按下它时,工具栏背景会改变它的颜色。。。
我试图更改创建方法,但返回了一个错误。。。
def changeThemeColor(self):
self.root.ids.tbCategorie.md_bg_color = [0, 0, 0, 1]
下面是我的代码。
from kivymd.app import MDApp
from kivymd.uix.floatlayout import FloatLayout
from kivy.lang import Builder
from kivymd.uix.button import MDFlatButton
from kivy.uix.scrollview import ScrollView
KV = '''
ScreenManager:
Screen:
name: 'screenOption'
BoxLayout:
orientation: 'vertical'
MDToolbar:
id: tbOption
md_bg_color: 0, 0, 0, 1
Options:
id: screenoption
<Options>
ScrollView:
MDList:
spacing: '20dp'
padding: '25dp'
MDLabel:
BoxLayout:
MDFlatButton:
md_bg_color: (0/255,0/255,0/255)
on_release: app.changeThemeColor()
line_color: (128/255,128/255,128/255)
MDLabel:
MDFlatButton:
md_bg_color: (255/255,255/255,255/255)
line_color: (128/255,128/255,128/255)
MDLabel:
MDFlatButton:
md_bg_color: (255/255,0/255,0/255)
line_color: (128/255,128/255,128/255)
MDLabel:
MDFlatButton:
md_bg_color: (0/255,0/255,255/255)
line_color: (128/255,128/255,128/255)
MDLabel:
BoxLayout:
MDFlatButton:
md_bg_color: (255/255,0/255,255/255)
line_color: (128/255,128/255,128/255)
MDLabel:
MDFlatButton:
md_bg_color: (255/255,255/255,0/255)
line_color: (128/255,128/255,128/255)
MDLabel:
MDFlatButton:
md_bg_color: (0/255,128/255,0/255)
line_color: (128/255,128/255,128/255)
MDLabel:
MDFlatButton:
md_bg_color: (128/255,128/255,128/255)
line_color: (128/255,128/255,128/255)
'''
class Options(FloatLayout):
pass
class Aplicativo(MDApp):
def changeThemeColor(self):
self.root.ids.tbCategorie.md_bg_color = [0, 0, 0, 1]
def build(self):
return Builder.load_string(KV)
Aplicativo().run()
顺便说一下,原来的代码我至少有5个不同的工具栏,我想更改。
在发布的代码中,tbOption
引用MDToolbar
,而tbCategorie
没有引用。因此,在方法changeThemeColor
中,您需要将其更改为
self.root.ids.tbOption.md_bg_color = [0, 0, 0, 1]
此外,在设置md_bg_color
、时可能会出现以下错误
ValueError: MDToolbar.md_bg_color value length is immutable`
这意味着md_bg_color
应该是[r, g, b, a]
格式中介于0和1之间的四个值的列表或元组(如果以字符串、无等以外的格式给出(。