You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python Kivy将垂直矩形转换为水平矩形?

嘿,作为Kivy新手碰到这种看似简单但卡壳的问题太正常啦,我来帮你搞定~

你现在的代码画出来是垂直中线,核心原因是你设置的Rectangle尺寸和位置是垂直方向的:size:10, self.height意味着这个矩形宽10像素、高占满整个屏幕高度,再加上pos:self.center_x -5,0让它从屏幕底部开始,对齐水平中心,所以就成了垂直中线。

要改成水平中线,直接调整pos和size参数就好,完全不需要旋转,这是最直接高效的方式:

<PongGame>:
    canvas:
        Rectangle:
            pos: 0, self.center_y - 5  # 从屏幕左边缘开始,垂直方向居中(减去5是因为矩形高10)
            size: self.width, 10       # 宽度占满整个屏幕,高度10像素

要是你好奇怎么用旋转实现(虽然这里没必要),也可以用Kivy的Rotate指令配合PushMatrix/PopMatrix来保证不影响其他绘制内容:

<PongGame>:
    canvas:
        PushMatrix  # 保存当前矩阵状态
        Rotate:
            angle: 90  # 旋转90度
            origin: self.center  # 以屏幕中心为旋转原点
        Rectangle:
            pos: self.center_x - 5, 0
            size: 10, self.height
        PopMatrix  # 恢复矩阵状态,避免影响后续绘制

不过还是更推荐第一种方法,毕竟旋转对于这个需求来说有点画蛇添足,直接调整位置和尺寸更直观~

内容的提问来源于stack exchange,提问作者PyBeginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 11:07:47