python画布按钮颜色随机切换_Kivy自定义按钮按“更改画布颜色”

您必须存储和重用颜色指令,并在Canvas添加指令时更改颜色,在您的例子中,您添加的新颜色指令不适用于其他元素,如矩形或椭圆,因此您看不到效果。在from kivy.base import runTouchApp

from kivy.uix.behaviors import ButtonBehavior

from kivy.uix.label import Label

from kivy.vector import Vector

from kivy.graphics import Color, Ellipse

from kivy.properties import ListProperty

class CircularButton(ButtonBehavior, Label):

background_color = ListProperty((0.5,.5,.5,.5))

def __init__(self, **kwargs):

super(CircularButton,self).__init__(**kwargs)

self.draw()

self.text='test'

def update_shape(self, *args):

self.shape.pos = self.pos

self.shape.size = self.size

def on_background_color(self, *args):

self.shape_color.rgba = self.background_color

def draw(self, *args):

with self.canvas.before:

self.shape_color = Color(rgba=(0.5,.5,.5,.5))

self.shape = Ellipse(pos=self.pos,size=self.size)

self.bind(pos=self.update_shape, size=self.update_shape)

def on_press(self, *args):

self.background_color= (1, 0, 0, 1)

def on_release(self, *arg):

self.background_color = (0.5,.5,.5,.5)

def collide_point(self, x, y):

return Vector(x, y).distance(self.center) <= self.width / 2

if __name__ == '__main__':

runTouchApp(CircularButton())

虽然我更喜欢将.kv和.py结合起来,但利用kv语言是声明性的,因此连接很简单:

^{pr2}$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值