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

如何从GridLayout的子按钮中获取信息?代码报错求助

问题解决方法

你的代码有两处问题导致了错误,修正如下:

问题1:添加的是Button类而非实例

add_widget(Button)里传的是Button类,不是具体的按钮对象,应该改成创建Button实例:Button()。

问题2:遍历子部件时误用了索引

for _ in self.layout.children循环中,_代表的是每个子部件(也就是Button实例),不是列表的索引。你用self.layout.children[_]相当于把Button实例当索引用,自然会触发类型错误。直接打印遍历到的变量即可。

修正后的完整代码

self.layout = GridLayout(cols=3)
for _ in range(9):
    # 创建Button实例并添加到布局
    self.layout.add_widget(Button())
# 直接遍历每个子部件并打印信息
for btn in self.layout.children:
    print(btn)
    # 如果需要获取按钮的具体属性,比如文本,可这样写:
    # print(f"按钮文本:{btn.text}")

如果需要给按钮设置自定义属性(比如文本),创建实例时可以直接指定:

self.layout.add_widget(Button(text=f"按钮{_+1}"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:36:20