我想使用 kivy scatter 来调整 scatter 包含的小部件的大小。因此,我创建了包含在 scatter
中的 box_total
,包含在 floatlayout
中。
这是代码:
from kivy.app import App
from kivy.uix.scatter import Scatter
from kivy.uix.label import Label
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
class TutorialApp(App):
def build(self):
b = BoxLayout(orientation='vertical')
button = Button(text = 'something')
b.add_widget(button)
box_labels = BoxLayout(orientation = 'horizontal')
label1 = Label(text = 'hello')
box_labels.add_widget(label1)
label2 = Label(text = 'world')
box_labels.add_widget(label2)
box_buttons = BoxLayout(orientation = 'horizontal')
button1 = Button(text = 'hello')
box_buttons.add_widget(button1)
button2 = Button(text = 'world')
box_buttons.add_widget(button2)
box_total = BoxLayout(orientation = 'vertical')
box_total.add_widget(box_labels)
box_total.add_widget(box_buttons)
f = FloatLayout()
s = Scatter()
f.add_widget(s)
s.add_widget(box_total)
b.add_widget(f)
return b
if __name__ == "__main__":
TutorialApp().run()
这就是我得到的:
如何调整内部小部件 box_total
的大小以占据整个 FloatLayout
区域? (窗口的下半部分)
最佳答案
Scatter
不是布局,因此位置的自动设置在这里不起作用。使用 ScatterLayout
的行为类似于 Scatter
和 FloatLayout
。
from kivy.uix.scatterlayout import ScatterLayout
ScatterLayout()
或者通过设置 FloatLayout
内小部件的位置来手动执行此操作,但请记住,您需要先执行 size_hint=(None, None)
。
关于python - 调整 kivy scatter 中小部件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40201386/