Kivy如何将canvas绘制的矩形定位在任意分辨率的窗口顶部
你只需要给RoundedRectangle绑定动态计算的pos属性即可,修改后的kv代码如下:
<Test>: BoxLayout: size: root.width, root.height canvas: Color: rgba: 1,1,1,1 RoundedRectangle: id: toprect size: self.width, root.height/5 pos: 0, root.height - self.size[1] radius: [(0, 0), (0, 0), (40, 40), (40, 40)]
- pos属性的计算逻辑是x轴固定为0(占满窗口整个横向宽度),y轴取值为窗口总高度减去矩形自身高度,刚好让矩形的顶部和窗口顶部对齐,完全不需要硬编码固定位置参数,窗口分辨率变化时会自动适配。
- kv语言会自动监听依赖的属性变动,只要窗口宽高发生变化,矩形的大小和位置会自动触发重绘,不需要额外写绑定逻辑。
内容的提问来源于stack exchange,提问作者Mahdi Yaghoubi
相关产品推荐
相关产品推荐

