Я использую Kivy для создания простого приложения, которое будет загружать разные изображения на разных вкладках панели с вкладками. Различные элементы панели должны вести себя одинаково, но с разными изображениями, поэтому я создал класс виджетов. Я пытаюсь инициализировать мое приложение, используя язык kv, как во многих примерах.
В настоящее время я не могу заставить его работать, потому что я не могу найти, как передать имена файлов в списке из части языка kv в экземпляр виджета. Я могу работать с другими свойствами, но ListProperty меня озадачивает.Kivy: set ListProperty from kv language
Вот отрывок из моего кода:
Builder.load_string("""
<MyMainClass>:
#stuff
TabbedPanelItem:
MyClassLayout:
filenames: ['pic1.jpg', 'pic2.jpg', 'pic3.jpg', 'pic4.jpg']
#other TabbedPanelItems like the one above,
#with different strings in the list
""")
def MyMainClass(TabbedPanel):
pass
def MyClassLayout(FloatLayout):
filenames = ListProperty([])
#rest of my class
Вещи, которые я уже пытался:
- Используйте различные скобки в присвоении списка на языке киловольт часть: Я пытался() и {} , а также без круглых скобок.
- Инициализировать ListProperty по-другому: я попытался вставить в него некоторую строку.
- Отправить другие списки: Я попытался отправить числа вместо строк.
Результат всегда заключается в том, что список имен файлов в моем виджете всегда находится по умолчанию. Это будет [] в фрагменте выше, или что бы я ни указал в своем объявлении в моем классе.
Кто-нибудь, пожалуйста, укажите, что я делаю неправильно?
Спасибо.