Мое приложение содержит 2 экрана:
1-й экран: экран приветствия - ярлык для отображения приветственного сообщения и кнопка для перехода к следующему экрану
2-й экран: динамически создаваемые ярлыки
Я хотел бы реализовать scrollview
для моего второго экрана, который содержит динамически создаваемые метки. Я пытался, но scrollview
не работает.
Ниже приведен мой код:
main.py
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
class Welcome(Screen):
pass
class Second(Screen):
dynamic_labels = []
texts = ['Label '+str(i) for i in range(1,20)]
no_widgets = len(texts)
def set_data(self):
for data,wid in zip(self.texts,self.dynamic_labels):
wid.text = data
class WindowManager(ScreenManager):
pass
class SampleApp(App):
def build(self):
return Builder.load_file("questapp\mytest.kv")
if __name__ == "__main__":
SampleApp().run()
mytest.kv
#: import Label kivy.uix.label.Label
WindowManager:
Welcome:
Second:
<Welcome>
name: "Welcomescreen"
GridLayout:
cols:1
Label:
text: "Welcome to my app"
Button:
text: "Proceed"
on_press:
app.root.current = "screen2"
<Second>
name: "screen2"
FloatLayout:
ScrollView:
do_scroll_y: True
do_scroll_x: True
GridLayout:
spacing:20
padding: 20
size_hint: 1,None
height:500
cols:1
on_kv_post:
for i in range(root.no_widgets):root.dynamic_labels.append(Label(size_hint = (0.1,None),height = 30))
for wid in range (root.no_widgets):self.add_widget(root.dynamic_labels[wid])
root.set_data()