我该如何在Kivy中改变BoxLayout的顺序?

3

我正在测试kivy,想创建一个BoxLayout并堆积一些按钮。我的问题是添加到布局中的子项遵循自下而上的逻辑,而我想要相反的顺序。您知道如何反转顺序吗?谢谢!

我正在测试 kivy 框架,并打算创建 BoxLayout 来堆叠一些按钮。我的问题在于,被添加到布局中的子元素会按照从底部到顶部的顺序排列,而我想要相反的顺序。请问您知道如何翻转顺序吗?谢谢!


你的目标是什么?为什么默认的从底部到顶部的布局逻辑对你有问题?也许你可以简单地逻辑上反转组件的顺序(如果Kivy没有错误地遮挡某些组件)。 - Rabih Kodeih
想象一下,你有一个带有三个按钮(新建、加载、选项)的菜单。通常情况下,菜单会按照从上到下的逻辑显示,而不是从下到上。但在kivy中,当我使用boxlayout时,“新建”按钮将位于底部,上面则是“加载”按钮等等。布局从底部开始填充按钮,而不是从顶部开始。 - Socratesx
2个回答

8

有两种方法可以做到这一点。一种是按相反的顺序将按钮传递给add_widget()方法,另一种是如果您使用的是Kivy >= 1.0.5,则可以向add_widget方法传递一个索引。

box = BoxLayout(...)
btn = Button(...)
box.add_widget(btn, len(box.children))

1
有一个巧妙的方法来实现这个。使用网格布局并将列设置为1。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接