Kivy无法绘制图形求助:如何在窗口中显示矩形?
解决Kivy无法显示矩形的问题
你的代码存在三个关键问题,修正后即可正常显示矩形:
1. KV文件缩进错误
Kivy通过缩进识别UI层级,你当前的Rectangle没有嵌套在canvas:指令下,导致Kivy无法将其识别为绘图指令。必须将Rectangle缩进,作为canvas:的子元素。
2. KV文件名错误
KV文件命名必须遵循规则:对应你的PongApp类,文件名要去掉末尾的App并转为小写,即**pong.kv**,同时后缀必须是.kv(你原拼写的.ky是错误的)。
3. 矩形位置偏移问题
原代码中pos:self.center_x, 0会让矩形的左边缘对齐窗口中线,视觉上会偏右。如果要让矩形垂直居中,需要将x坐标减去矩形宽度的一半(10/2=5),这样矩形的中心才会对齐窗口中线。
修正后的KV代码
<PongGame>: canvas: Rectangle: pos: self.center_x - 5, 0 size: 10, self.height
你的Python代码无需修改
from kivy.app import App from kivy.uix.widget import Widget class PongGame(Widget): pass class PongApp(App): def build(self): return PongGame() PongApp().run()
将KV文件命名为pong.kv并和Python文件放在同一目录,运行Python脚本后就能看到窗口中显示一条垂直居中的矩形了。
内容的提问来源于stack exchange,提问作者Sripriya Thirukkovalluru
相关产品推荐
相关产品推荐

