更改 Kivy 中的点击按钮颜色

问题描述 投票:0回答:3

我正在使用 Kivy 和 Python 2.7。 我熟悉如何更改静态按钮本身的颜色,但是按下按钮时如何更改按钮的颜色?默认为蓝色。

感谢您的帮助。

python button kivy
3个回答
1
投票

根据 Button

 参考,属性 
background_down
存储按下
Button
时用作背景的图像的路径。这是默认值:

background_down = StringProperty(
    'atlas://data/images/defaulttheme/button_pressed')

您可以更改该属性以指向不同的图像或

atlas


1
投票

Kivy 框架使用button_normal 和button_down 的背景图像,background_color 仅着色,因此kv 语言中的行为可能不会如您所期望的那样:

<Button>:    
    background_color: 1, 0, 0  # Tints the button red
    background_normal: 'images/button_normal.png'  # A clear image gives a bright red. 
    background_down: 'images/button_down.png'  # A gray image gives a duller red.
    border: (2, 2, 2, 2)  # Don't stretch the outer two pixels on each edge when resizing.

这种风格可以让你说出暗淡的边框和明亮的内部,并在按下按钮时将它们交换。如果你使用这个系统,图像将被导入,颜色被忽略。要解决此问题并解决您的问题,请删除背景颜色:

<Button>:    
    background_normal: 'images/button_normal.png'  # Eg. A red button
    background_down: 'images/button_down.png'  # Eg. A green button
    border: (2, 2, 2, 2)  # Don't stretch the outer two pixels on each edge when resizing.

这会将按钮的颜色更改为您在图像中所做的任何颜色。值得注意的是,Kivy 非常擅长拉伸图像,所以如果你有单色按钮或小边框,你只需要一个小图像,我使用 8x8 像素。


0
投票

Я не знаю, нужно ли вам сейчас или нет но можно сделать что-то подобное

button = Button(background_color=[1, 0,0,1])

button.bind(on_press=lambda _: self.change_color(button,[0,0,0,1]))

button.bind(on_touch_up=lambda _, x: self.change_color(button,[1,0,0,1]))

def change_color(btn, color):

   btn.background_color=color
© www.soinside.com 2019 - 2024. All rights reserved.