我在 Kivy 语言与 Python 语言的概念之间来回切换时遇到了麻烦。我不太擅长解释事情,我已经考虑过如何解释我的具体问题,但我能想到的最好方法是:
如何实现ScrollViewApp
使用该Builder
功能?
我在 Kivy 语言与 Python 语言的概念之间来回切换时遇到了麻烦。我不太擅长解释事情,我已经考虑过如何解释我的具体问题,但我能想到的最好方法是:
如何实现ScrollViewApp
使用该Builder
功能?
嗯,类似的东西
ScrollView:
size_hint: None, None
size: 500, 320
pos_hint: {'center_x': .5, 'center_y': .5}
do_scroll_x: False
GridLayout:
cols: 1
padding: 10
spacing: 10
size_hint_y: None
height: self.minimum_height
ScrollButton:
text: '1'
ScrollButton:
text: '2'
ScrollButton:
text: '3'
ScrollButton:
text: '4'
ScrollButton:
text: '5'
ScrollButton:
text: '6'
<ScrollButton@Button>
size_hint: None, None
size: 480, 40
在这里,但是我们真的没有办法动态创建孩子(嗯,会有办法,但它们很丑),所以我手动放了一些,理想情况下你会在 kv 中创建 ScrollView 和 GridLayout,然后将孩子从 python 中放入(使用 id,如文档中所述)。
编辑:使用应用程序和 ObjectProperty 的更完整版本
kv 文件 (scroll.kv):
ScreenManager:
Screen:
ScrollView:
size_hint: None, None
size: 500, 320
pos_hint: {'center_x': .5, 'center_y': .5}
GridLayout:
cols: 1
padding: 10
spacing: 10
height: self.minimum_height
size_hint: None, None
do_scroll_x: False
id: container
<ScrollButton>
size_hint: None, None
size: 480, 40
蟒蛇文件(main.py):
from kivy.app import App
from kivy.uix.button import Button
class ScrollButton(Button):
pass
class ScrollApp(App):
def build(self):
super(ScrollApp, self).build()
container = self.root.ids.container
for i in range(30):
container.add_widget(ScrollButton(text=str(i)))
return self.root # return root does not work
if __name__ == '__main__':
ScrollApp().run()