Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Kivy的RecycleView进行类继承_Python_Kivy_Kivy Language - Fatal编程技术网

Python 使用Kivy的RecycleView进行类继承

Python 使用Kivy的RecycleView进行类继承,python,kivy,kivy-language,Python,Kivy,Kivy Language,我试图创建一个通用的RecycleView,并从中继承viewclass,如下所示: <GenericList@RecycleView>: SelectableRecycleBoxLayout: canvas.before: Color: rgba: (.0, 0.9, .5, .8) Rectangle: pos: self.pos

我试图创建一个通用的RecycleView,并从中继承viewclass,如下所示:

<GenericList@RecycleView>:
    SelectableRecycleBoxLayout:
        canvas.before:
            Color:
                rgba: (.0, 0.9, .5, .8)
            Rectangle:
                pos: self.pos
                size: self.size
        default_size: None, 30
        default_size_hint: 1, None
        size_hint_y: None
        height: self.minimum_height
        orientation: 'vertical'
        multiselect: False

<SetList@GenericList>:
    viewclass: 'SetSelectableLabel'
<CardList@GenericList>:
    viewclass: 'CardSelectableLabel'
RecycleView:
    RecycleBoxLayout:
SetSelectableLabel和CardSelectableLabel之间的区别在于所选事件调用的方法。 我注意到,当使用此配置运行应用程序时,RecycleView不会显示任何viewclass对象。列表就在那里,我可以滚动它并看到滚动条在移动,但是没有显示任何标签

但是,如果我像下面那样在RecycleView中定义viewclass,那么一切都可以正常工作,除了我不能做我想做的事情,即更改继承类上的viewclass以实现自定义行为

<GenericList@RecycleView>:
    viewclass: 'GenericSelectableLabel'
我在这里遗漏了什么吗?

RecycleView是一个不完整的小部件。有很多事情你做不到。例如:

rv=可回收视图 rv.add_widgetRecycleBoxLayout 上面的代码不起作用。您必须从kv构建一个小部件树,如下所示:

<GenericList@RecycleView>:
    SelectableRecycleBoxLayout:
        canvas.before:
            Color:
                rgba: (.0, 0.9, .5, .8)
            Rectangle:
                pos: self.pos
                size: self.size
        default_size: None, 30
        default_size_hint: 1, None
        size_hint_y: None
        height: self.minimum_height
        orientation: 'vertical'
        multiselect: False

<SetList@GenericList>:
    viewclass: 'SetSelectableLabel'
<CardList@GenericList>:
    viewclass: 'CardSelectableLabel'
RecycleView:
    RecycleBoxLayout:
viewclass就是其中之一。您无法动态更改它,因此下面的代码:

rv=锅炉荷载_管柱' 回收审查: 循环利用布局: ' rv.viewclass='Label'不起作用
不起作用。我不确定这是问题的原因,但你只需要意识到这种不完整性

我认为这与小部件是新的这一事实有关,但文档明确指出我应该使用RecycleView,而不是好的和旧的ListView。ListView甚至从最新版本的文档中删除。。。另外,刚刚检查过,它完全从v1.11.1中删除。我喜欢kivy,但老兄,不赞成ListView而赞成RecycleView的混乱是一个错误。