没有为kivy获取ScrollView

Posted

技术标签:

【中文标题】没有为kivy获取ScrollView【英文标题】:Not getting ScrollView for kivy 【发布时间】:2021-05-19 22:53:25 【问题描述】:

我正在创建一个应用程序,以便我的代码在下面给出,但是为什么我没有得到 ScrollView 任何人都可以解释一下这段代码有什么问题。

from kivy.uix.button import Button
from kivy.app import runTouchApp
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.uix.gridlayout import GridLayout
from kivy.clock import Clock
from kivy.core.window import Window
from kivy.uix.scrollview import ScrollView
root1 = ScrollView(size_hint=(1, None), size=(Window.width, Window.height))
root2 = FloatLayout()
def c(a):
    root1.remove_widget(root2)
    layout = GridLayout(cols=1, spacing=10, size_hint_y=None)
    layout1 = GridLayout(cols=1, spacing=10, size_hint_y=None)
    layout1.bind(minimum_height=layout1.setter('height'))
    for i in range(100):
        btn = Button(text=str(i), size_hint_y=None, height=40)
        layout1.add_widget(btn)
    layout2=GridLayout(cols=1, spacing=10, size_hint_y=None)
    b1=Button(text='hi')
    layout2.add_widget(b1)
    layout.add_widget(layout2)
    layout.add_widget(layout1)
    root1.add_widget(layout)
b=Image(source='/storage/emulated/0/Photo Editor/Polish_20210216_162256244.png')
root2.add_widget(b)
root1.add_widget(root2)
Clock.schedule_once(c, 2)
runTouchApp(root1)

【问题讨论】:

【参考方案1】:

不知道您为什么在另一个GridLayout 中使用GridLayout,但这就是问题所在。如果您使用其中两个,则每个都必须使用minimum_height。只需添加以下行:

layout.bind(minimum_height=layout.setter('height'))

【讨论】:

以上是关于没有为kivy获取ScrollView的主要内容,如果未能解决你的问题,请参考以下文章

Kivy'对象没有属性'错误

无法在 kivy 中获取导航抽屉

kivy 如何在 TextInput 中获取文本?

获取 kivy 微调器选择的索引

如何从 kivy 按钮中获取文本?

有没有一种简单的方法可以为 Kivy 按钮添加边框