我正在使用 Kivy,一个 Python 库,我无法让滚动视图正常工作,并将其组织到 .kv 文件中。
我有一个很大的系统,它被分解成许多 .py 和 .kv 文件。
我也在用kivy的屏幕管理器
ui_manager.py
#ui_manager.py
class UIManager():
_ScreenManager = None
def __init__(self, inScreenManager):
self.ScreenManager = inScreenManager # The main app constructs the manager, sends to me, then returns it as the root widget.
主文件
#main.py
class MyApp(App):
def build(self):
screenManager = ScreenManager()
uiManager = ui_manager.UIManager(screenManager)
return screenManager
显然我省略了一些代码,但这几乎就是发生的事情。
其中一个屏幕需要滚动。它将有一个长图形和许多按钮。像往常一样,Kivy 文档只告诉我如何通过代码进行操作,而不是通过 kivy 语言(.kv 文件) http://kivy.org/docs/api-kivy.uix.scrollview.html
我想要一个类 OrangeWidget 来保存滚动小部件,以便我以后可以使用它的数据。这是我让有组织的滚动视图工作的最佳尝试
橙色小部件.py
#orange_widget.py
class OrangeWidget(Screen):
pass
class OrangeGraphic(Widget):
pass
橙色.kv
<OrangeLineWidget>
ScrollView:
size_hint: (None, None)
size: (400, 1200)
OrangeLineGraphic:
pos: root.pos
<OrangeGraphic>
canvas:
Color:
rgba: 1, .5, 0, 1
Rectangle:
pos: self.center_x - 15, 0
size: 30, self.height * 2
Label:
text: "Hello"
我知道它很多,而且看起来组织得不太好,但我只是想弄清楚如何让这该死的东西正常工作。
这是当前结果:它不会滚动,并且无论出于何种原因,它都被“装箱”到右侧,而不是占据整个屏幕