《Python+Kivy(App开发)从入门到实践》自学笔记:基本图形绘制——canvas.before属性和canvas.after属性

博客介绍了canvas.before和canvas.after属性,其用法与canvas基本一致,主要差别在执行顺序,优先级为canvas.before > canvas > widget > canvas.after。还给出实例,新建canvas.kv文件添加相关属性和按钮小部件,运行程序展示各属性运行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

章节知识点总揽

3.3.2 canvas.before属性和canvas.after属性

        canvas.before和canvas.after属性用法与canvas基本一致,主要差别就是在执行顺序先后上,其优先级如下:

        canvas.before > canvas > widget(canvas.before、canvas、canvas.after) > canvas.after

实例:使用画布的canvas.before和canvas.after属性

        新建一个canvas.kv文件,在其中添加一个canvas.before和canvas.after属性和按钮小部件,具体如下:

<RelativeWidget>:
	canvas.before:
		Color:
			rgba:[1,1,1,1]
		Rectangle:
			pos:self.pos
			size:self.size
	canvas:
		Color:
			rgba:[.5,.1,.1,.1]
		Rectangle:
			pos:self.pos
			size:300,300
	canvas.after:
		Color:
			rgba:[.1,.5,.1,.1]
		Rectangle:
			pos:200,200
			size:300,300
	Button:
		text:'Button 0'
		pos:100,100
		size_hint:None,None
		size:300,300
		canvas.after:
			Color:
				rgba:[.1,.1,.5,1]
			Rectangle:
				pos:self.pos
				size:100,100

        main.py文件,延用上一篇的,删除掉里面关于布局的内容,具体如下:

from kivy.app import App
from kivy.uix.relativelayout import RelativeLayout
from kivy.graphics import Rectangle,Color
from kivy.graphics.instructions import InstructionGroup

class RelativeWidget(RelativeLayout):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)



class CanvasApp(App):
    def build(self):
        return RelativeWidget()

if __name__ == '__main__':
    CanvasApp().run()

        运行程序,按照顺序所示,白色的canvas.before属性最先运行(背景色),其次是红色的canvas画布遮住了白色的背景,再次是小部件(按照canvas.before、canvas、canvas.after属性的优先级),最后显示绿色的canvas.after属性,如下图所示:

2ff6cb1f0d2b4e6287118cc568516eb8.png

        书上颜色比这个深,不知道为什么......

上一篇:基本图形绘制——canvas的属性

下一篇:基本图形绘制——旋转坐标空间

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静候光阴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值