我希望使用以下格式的Kivy库在Python中制作页面
________________________
| |
| title |
|______________________|
>>| Example 1 |<<
|______________________|
| | |
|___________|__________|
| | |
|___________|__________|
| | |
>>|___________|__________|<<
| Home |
|______________________|
| Settings |
|______________________|
箭头之间的屏幕部分应该是可滚动的。到目前为止我的代码如下:
Kv档案:
<ExampleScreen>:
BoxLayout:
orientation: 'vertical'
Label:
text: 'title'
ScrollView:
GridLayout:
cols: 1
Label:
text: 'Example 1'
GridLayout:
cols: 2
rows: 4
Label:
text: 'Filler'
Label:
text: 'Filler'
Label:
text: 'Filler'
Label:
text: 'Filler'
Label:
text: 'Filler'
Label:
text: 'Filler'
Label:
text: 'Filler'
Label:
text: 'Filler'
Button:
text: 'Home'
size_hint: 1, .1
on_press: root.manager.current = 'home'
Button:
text: 'Settings'
size_hint: 1, .1
on_press: root.manager.current = 'settings'
Py文件:
from kivy.uix.gridlayout import GridLayout
from kivy.uix.scrollview import ScrollView
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.button import Button
from kivy.lang import Builder
Builder.load_file('example.kv')
class ExampleScreen(Screen):
pass
sm = ScreenManager()
sm.add_widget(ExampleScreen(name = 'example'))
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
我尝试过这几种方式,但没有任何效果。有没有其他人有这方面的经验/知道这是否可能?谢谢你的帮助!
答案 0 :(得分:1)
是的,如果你得到缩进和尺寸提示,那是可能的。
ScrollView doc
试试这个:
<MyLabel@Label>:
size_hint:1,None
<ExampleScreen>:
BoxLayout:
orientation: 'vertical'
Label:
text: 'title'
ScrollView:
size_hint: 1,None
GridLayout:
size_hint: 1,None
height: self.minimum_height
cols: 1
MyLabel:
text: 'Example 1'
GridLayout:
size_hint: 1,None
height: self.minimum_height
cols: 2
rows: 4
MyLabel:
text: 'Filler'
MyLabel:
text: 'Filler'
MyLabel:
text: 'Filler'
MyLabel:
text: 'Filler'
MyLabel:
text: 'Filler'
MyLabel:
text: 'Filler'
MyLabel:
text: 'Filler'
MyLabel:
text: 'Filler'
Button:
text: 'Home'
size_hint: 1, .1
on_press: root.manager.current = 'home'
Button:
text: 'Settings'
size_hint: 1, .1
on_press: root.manager.current = 'settings'