【发布时间】:2021-04-08 01:38:41
【问题描述】:
我有一个 GridLayout,我在其中添加基于 json 文件的按钮,该文件可以从一次运行更改为下一次运行(因此按钮不存在于 .kv 文件中,而是添加到 python 代码中,按钮的数量也可以改变)。我希望按钮在中心有一个图像,但访问 button.center 会返回垃圾值(在将按钮添加到网格布局之前和之后)。相反,我尝试在绘制相关屏幕后打印 button.center 并返回正确的值。我能想到的唯一解决方案是在启动 kivy 应用程序之前根据我的 json 上的数据使用一些 python 代码动态更改 .kv 文件,但我认为必须有一个更简单的解决方案。
for but in buttons:
but = Button();
but.add_widget(Image(source = "source.png", center = but.center))
# Adds images in the bottom left corner regardless of button position
print(but.center) # prints [50.0, 50.0] regardless of button position
【问题讨论】: