喝卤小夫 2023-01-18 15:51 采纳率: 48.1%
浏览 27
已结题

关于kivy绘制图形的问题

我写了一个简单的kivy程序(如图),
就是在窗口上绘制了一个矩形,
我想要的效果是 这个矩形会随着我拖动窗口的大小而改变大小,
而现在我的代码是一个固定的矩形,
请教各位一下 如何才能达到我要的效果?

img

  • 写回答

1条回答 默认 最新

  • m0_54204465 2023-01-18 17:21
    关注

    如果你想要矩形随着窗口大小改变而改变大小,你需要在Kivy程序中绑定一些事件处理器。

    为了实现这个效果,你需要在BoxLayoutWidget类中添加on_size函数。

    该函数将在窗口大小改变时被调用,并且在这个函数中你可以重新设置矩形的大小。

    首先,你需要在BoxLayoutWidget类中添加一个矩形变量,然后在_init_()函数中创建一个新的矩形,并将其存储在这个变量中。

    然后,你需要在on_size()函数中设置矩形的size属性,以便它随着窗口大小改变而改变。

    示例代码如下:

    class BoxLayoutWidget(BoxLayout):
    def init(self, **kwargs):
    super().init(**kwargs)
    with self.canvas:
    Color(1, .5, .8, 1)
    self.rect = Rectangle(pos=(100, 100), size=(400, 100))
    def on_size(self, *args):
        self.rect.size = self.size
    class MYApp(App):
    def build(self):
    return BoxLayoutWidget()
    
    MyApp().run()
    

    这样运行你的程序,你应该能看到矩形随着窗口大小改变而改变大小了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月19日
  • 已采纳回答 1月18日
  • 创建了问题 1月18日

悬赏问题

  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?