【问题标题】:Kivy ScrollView with over lapping layouts具有重叠布局的 Kivy ScrollView
【发布时间】:2023-03-22 07:33:02
【问题描述】:

我正在尝试在屏幕上绘制 10 张图像,然后在相同位置在它们上方再绘制 10 张图像(大小和形状相同)。这很好,但我也希望它都是可滚动的,但我收到错误 Exception: ScrollView accept only one widget 这是我的代码:

root = ScrollView(size_hint=(1,1), scroll_wheel_distance=40)

layout1 = GridLayout(cols=2, spacing=0, size_hint=(1, None), row_force_default=True, row_default_height=270)
layout1.bind(minimum_height=layout1.setter('height'))
for i in range(10):
    img = Image(source=UI_bottom_path, size_hint_y=1, allow_stretch=True)
    layout1.add_widget(img)

layout2 = GridLayout(cols=2, spacing=0, size_hint=(1, None), row_force_default=True, row_default_height=270)
for i in range(10):
    img = Image(source=UI_top_path, size_hint_y=1, allow_stretch=True)
    layout2.add_widget(img)

root.add_widget(layout1)
root.add_widget(layout2)
self.add_widget(root)

如果我注释掉“root.add_widget(layout2)”,它可以正常工作,但不会绘制图像。 这是它目前的样子: 这是每个人的外观:

有没有办法获取 ScrollView 并使图层相互叠加?

【问题讨论】:

    标签: python user-interface kivy


    【解决方案1】:

    就像你的错误所说,ScrollView 只接受一个小部件。当您注释掉“root.add_widget(layout2)”时,Scrollview 只有一个小部件,这就是它起作用的原因。 因此,您可以只将一种布局添加到 Scrollview,如 BoxLayout 或 GridLayout,然后将图像添加到相同的布局中。

    请添加您的完整代码,然后我们可以展示一个示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多