更改python kivy的开关颜色?



是否可以改变一个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()

最新更新