You need to enable JavaScript to run this app. Kivy开发:如何在.py文件访问canvas.before随机调整GridLayout内图像的画布尺寸
优惠活动
大模型
产品
解决方案
定价
更多

Kivy开发:如何在.py文件访问canvas.before随机调整GridLayout内图像的画布尺寸

Kivy开发中GridLayout内随机单个图像尺寸修改失效问题

现有实现逻辑

KV文件定义部分

  • 自定义<ButOpcion>组件:在canvas.before层绘制固定250x250尺寸的Rectangle,加载资源data/img/letra_d/dragon.png
  • 自定义<ContainerCaza>屏幕:
    • 在canvas.before层加载背景图data/img/fondobosque.jpg
    • 屏幕内部嵌套竖向BoxLayout,依次包含三类元素:提示文本Label、5列布局的GridLayout(内部放置10个id为but1至but10的ButOpcion组件)、触发页面跳转返回菜单的Button

Python代码定义部分

  • 定义ButOpcion为基础Widget的子类
  • 定义ContainerCaza为Screen的子类
  • 编写intruso方法,通过random.choice从10个组件中随机选中单个目标组件

现存问题

  • 核心需求为随机修改GridLayout布局内10个图像中单个图像的显示尺寸,多次尝试实现方式均未达到预期效果,不清楚操作环节存在的问题
  • 尝试通过修改intruso方法选中的目标组件size属性实现尺寸调整,自定义的尺寸修改方法未实际生效
  • 作为Python与Kivy开发新手,不清楚如何在.py文件中访问组件的canvas.before节点完成对应操作,对相关实现逻辑存在较多困惑

内容的提问来源于stack exchange,提问作者David Sánchez Cruz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 01:36:01