【发布时间】:2018-01-16 17:55:37
【问题描述】:
新成员,第一次发帖。我会尽量具体和明确。以下代码取自 kivy 的关于RecycleView module 的网页。我想使用这段代码,但是,我不想使用 KV lang 和 Builder,而是用纯 Python 3 编写代码。我尝试将 RecycleBoxLayout 类添加为小部件是完全失败的,因为结果只是一个黑色的窗口。只有添加“视图类”才有效。显然,这里有一些我不理解或遗漏的东西。我还附上了我重写代码的尝试。
任何帮助将不胜感激。提前谢谢你。
原始代码:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView
Builder.load_string('''
<RV>:
viewclass: 'Label'
RecycleBoxLayout:
default_size: None, dp(56)
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
orientation: 'vertical'
''')
class RV(RecycleView):
def __init__(self, **kwargs):
super(RV, self).__init__(**kwargs)
self.data = [{'text': str(x)} for x in range(100)]
class TestApp(App):
def build(self):
return RV()
if __name__ == '__main__':
TestApp().run()
我的失败尝试:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView
from kivy.uix.label import Label
from kivy.uix.recycleboxlayout import RecycleBoxLayout
class RV(RecycleView):
def __init__(self, **kwargs):
super(RV, self).__init__(**kwargs)
self.data = [{'text': str(x)} for x in range(100)]
self.viewclass = Label
layout = RecycleBoxLayout()
self.add_widget(layout)
class TestApp(App):
def build(self):
return RV()
if __name__ == '__main__':
TestApp().run()
【问题讨论】:
标签: python kivy kivy-language