没有为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的主要内容,如果未能解决你的问题,请参考以下文章