是否可以改变一个kivySwitch
小部件的颜色?
我知道对于Button
小部件,您可以设置例如background_color: 1, 0, 0, 1
。
background_color
来改变我的Switch
的颜色。奇怪的是,它没有改变我的Switch
的颜色,但是没有错误信息.谢谢!
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
kv = '''
<RedSwitch>:
size_hint: None, None
size: 100, 100
Switch:
id: new_switch
background_color: 1, 0, 0, 1
pos: 50, 50
size_hint: None, None
size: 100, 50
active: False
on_active: switch_callback()
'''
class RedSwitch(FloatLayout):
def switch_callback(self):
pass
class SwitchApp(App):
def build(self):
Builder.load_string(kv)
return RedSwitch()
if __name__ == '__main__':
SwitchApp().run()
基于此:kivy:如何将开关默认从on/OFF更改为OPEN/CLOSE或YES/NO?
kv = '''
<RedSwitch>:
size_hint: None, None
size: 100, 100
Switch:
id: new_switch
active: False
on_active: root.switch_callback()
canvas:
Color:
rgb: 1, 0, 0, 1
Rectangle:
size: sp(41.5), sp(20)
pos: self.center_x - sp(40.0), self.center_y - sp(10)
Color:
rgb: 0, 0, 1, 1
Rectangle:
size: sp(41.0), sp(20)
pos: self.center_x, self.center_y - sp(10)
Label:
color: 1, 1, 1, 1
text: 'ON'
bold: True
font_size: 13
pos: self.parent.center_x - sp(70), self.parent.center_y - sp(50)
Label:
color: 0, 1, 0, 1
text: 'OFF'
bold: True
font_size: 13
pos: self.parent.center_x - sp(30), self.parent.center_y - sp(50)
'''
我用kivymd
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
kv = '''
<RedSwitch>:
size_hint: None, None
size: 100, 100
MDSwitch:
id: new_switch
background_color: 1, 0, 0, 1
pos: 50, 50
size_hint: None, None
size: 100, 50
active: False
track_color_active : "red"
thumb_color_active : "red"
track_color_inactive : "blue"
thumb_color_inactive : "blue"
on_active: root.switch_callback()
'''
class RedSwitch(FloatLayout):
def switch_callback(self):
pass
class SwitchApp(MDApp):
def build(self):
Builder.load_string(kv)
return RedSwitch()
if __name__ == '__main__':
SwitchApp().run()