我的应用程序上有两个按钮,它们都是紫色的,带有白色文本。当按下按钮时,我希望颜色更改为深紫色。显然,我缺少一些简单的东西,因为我的代码无法正常运行。
Button:
background_normal: ''
background_color: utils.get_color_from_hex("#752db5")
text: 'Sign Up'
size_hint: .3, .3
padding: 3, 1
font_name: 'Roboto-Medium'
background_color_down: utils.get_color_from_hex("#5b238d")
答案 0 :(得分:0)
就我个人而言,执行此操作的最喜欢的方法是在.py文件中创建一个名为LabelButton
的新类,并使其继承kivy的ButtonBehavior
和Label
类。然后使用LabelButton
的画布进行着色,并且由于继承了on_release
,因此您仍然可以像使用任何普通按钮一样使用ButtonBehavior
函数。
更改画布的背景颜色可以通过一个非常不错的技巧来完成。看看我的例子。
您的.py文件中的包括以下代码:
from kivy.uix.button import ButtonBehavior
from kivy.uix.label import Label
class LabelButton(ButtonBehavior, Label):
pass
然后在您的.kv文件中,您可以引用LabelButton类:
LabelButton:
canvas:
Color:
rgb: (1,0,0,1) if self.state == 'normal' else (0,1,0,1) # Color is red if button is not pressed, otherwise color is green
RoundedRectangle:
size: self.size
pos: self.pos
radius: 10,20,30,40 # Play with these if you want smooth corners for your button
text: "I am a LabelButton"
color: (0,0,1,1) # text color is blue
on_release:
print("I have been clicked")