У меня возникли проблемы с использованием виджета ScollView, чтобы сделать динамически созданный стек меток прокручиваемым. Возможно, я не понимаю, как использовать ScrollView, поэтому я надеюсь, что кто-то сможет прояснить это для меня. Следующий код считывает кучу данных из csv, и когда этот код отображается, если есть много данных, программа в основном попытается сжать весь текст/ярлыки в GridLayout. Я хочу, чтобы данные были прокручиваемыми. Вот отведенной версия кода:ScrollView виджет не scolling в kivy
class showData(Screen):
def __init__(self, **kwargs):
super(showData, self).__init__(**kwargs)
self.my_data = read_csv_to_dict()
self.data_exists = 0 if len(self.my_data) == 0 else 1
### Create Widgets ###
layout_main = BoxLayout(orientation = 'vertical')
layout_back_button = BoxLayout(padding = [0, 0, 0, 20])
self.layout_data = GridLayout(cols = 3 if self.data_exists else 1)
self.scrollview_data = ScrollView()
button_back = Button(text = 'Main menu')
### Add widgets ###
self.add_widget(layout_main)
layout_main.add_widget(layout_back_button)
layout_main.add_widget(self.scrollview_data)
layout_back_button.add_widget(button_back)
if self.data_exists:
self.layout_data.add_widget(Label(text = 'label 1'))
self.layout_data.add_widget(Label(text = 'label 2'))
self.layout_data.add_widget(Label(text = 'label 3'))
self.display_data(self)
self.scrollview_data.add_widget(self.layout_data)
else:
self.scrollview_data.add_widget(Label(text = 'Records are empty'))
### Create button bindings ###
button_back.bind(on_press = switch_screen_to_main)
def display_data(obj, self):
data_dictReader = read_csv_to_dictReader()
for data_row in data_dictReader:
for value in data_row.values():
self.layout_data.add_widget(Label(text = value))
GridLayout/данные не прокручиваются. Может ли кто-нибудь сказать мне, как исправить код выше, чтобы сделать его прокручиваемым? Спасибо.
После нескольких разногласий с различными свойствами, упомянутыми выше, он работает. Благодаря! –