Создание небольшое изменение в list_simple_in_kv.py использовать ListAdapter вместо SimpleListAdapter
, я считаю, что метод # 1 работает:Kivy: Почему ListView объявляет иначе в .kv-файле?
from kivy.uix.modalview import ModalView
from kivy.uix.listview import ListView
from kivy.uix.gridlayout import GridLayout
from kivy.lang import Builder
from kivy.app import App
#using 'sla'...whatever that means...
Builder.load_string("""
#:import ListItemButton kivy.uix.listview
#:import sla kivy.adapters.listadapter
<ListViewModal>:
ListView:
size_hint: .8, .8
adapter:
sla.ListAdapter(
data=["Item #{0}".format(i) for i in range(100)],
cls=ListItemButton.ListItemButton)
""")
class ListViewModal(ModalView):
def __init__(self, **kwargs):
super(ListViewModal, self).__init__(**kwargs)
class MainView(GridLayout):
def __init__(self, **kwargs):
kwargs['cols'] = 1
super(MainView, self).__init__(**kwargs)
listview_modal = ListViewModal()
self.add_widget(listview_modal)
class TestApp(App):
def build(self):
root = MainView()
return root
if __name__ == '__main__':
TestApp().run()
Но изменения файла киловольтной таким образом (путь, который наиболее рядный с другой кВ API, я пришел в поперечнике) не удается:
Builder.load_string("""
#:import ListItemButton kivy.uix.listview
#:import ListAdapter kivy.adapters.listadapter
<ListViewModal>:
size_hint: None, None
size: 400, 400
ListView:
size_hint: .8, .8
ListAdapter:
data: ["Item #{0}".format(i) for i in range(100)]
cls: ListItemButton.ListItemButton
""")
я даже наткнулся на this пост и this one too, говоря, что метод # 2 должны работать в мастере, но это yeilds исключения:
File "C:\Python27\lib\site-packages\kivy\adapters\adapter.py", line 102, in __init__
raise Exception('adapter: input must include data argument')
Exception: adapter: input must include data argument
Что мне здесь не хватает?
Заранее спасибо.
'sla' инициалы из' SimpleListAdapter', но в вашем случае это 'ListAdapter', так как изменить импорт на верхней' #: импорт Ла kivy.adapters.listadapter'. Я также редактирую ваш пост, потому что я думаю, что есть ошибка вложения –
@toto_tico: Вы правы в отступе. Благодарю. –
@toto_tico, я отклонил ваше редактирование. Если вы хотите исправить синтаксическую ошибку отступа в его коде Python. Вы должны опубликовать его как ответ, а не отредактировать вопрос, иначе это смутит людей, которые рассмотрят этот вопрос позже. –