Python 未知类错误,即使类定义为Kivy/recycle视图

Python 未知类错误,即使类定义为Kivy/recycle视图,python,python-3.x,kivy,kivy-language,Python,Python 3.x,Kivy,Kivy Language,我的design.kv文件中有以下代码片段: <Track>: on_release: root.print_data(self.text) RecycleView: viewclass: 'Track' RecycleGridLayout: cols: 1 default_size_hint: 1, None orientation: 'vertical' : 发布时: root.print

我的design.kv文件中有以下代码片段:

<Track>:
    on_release:
        root.print_data(self.text)

RecycleView:
    viewclass: 'Track'
    RecycleGridLayout:
        cols: 1
        default_size_hint: 1, None
        orientation: 'vertical'
:
发布时:
root.print_数据(self.text)
回收审查:
viewclass:“跟踪”
可循环使用的布局:
科尔斯:1
默认大小提示:1,无
方向:“垂直”
但是,它返回一个错误:

该类的轨迹是在上面的代码段以及我的python代码中定义的

我尝试将viewclass设置为“Button”,但它只返回了一个按钮,这不是预期的行为

我这里出了什么错? 谢谢:)

我的python和kivy文件的全部代码如下:

以防错误不是源于上面的代码段:)

Root小部件-屏幕 下面的示例演示了如何将Screen小部件用作根小部件并与RecycleView小部件结合使用

main.py 例子 main.py 试验电压(千伏)
#:kivy 1.11.0
:
发布时:
root.print_数据(self.text)
:
viewclass:“跟踪”
SelectableRecycleGridLayout:
科尔斯:1
默认大小:无,dp(56)
默认大小提示:1,无
尺寸提示:无
高度:自身最小高度
方向:“垂直”
多选:正确
触摸多选:真
输出

提供一个致谢人,但如果我想让它显示在屏幕上怎么办?请参阅更新的帖子,了解屏幕小部件上的显示。
from kivy.app import App
from kivy.uix.recycleview.views import RecycleDataViewBehavior
from kivy.uix.recyclegridlayout import RecycleGridLayout
from kivy.uix.behaviors import FocusBehavior
from kivy.uix.recycleview.layout import LayoutSelectionBehavior
from kivy.uix.button import Button
from kivy.uix.screenmanager import Screen
from kivy.lang import Builder


Builder.load_string('''
#:kivy 1.11.0

<Track>:
    on_release:
        root.print_data(self.text)

<RootWidget>:
    RecycleView:
        id: rv
        viewclass: 'Track'
        SelectableRecycleGridLayout:
            cols: 1
            default_size: None, dp(56)
            default_size_hint: 1, None
            size_hint_y: None
            height: self.minimum_height
            orientation: 'vertical'
            multiselect: True
            touch_multiselect: True
''')


class Track(RecycleDataViewBehavior, Button):

    def print_data(self, text):
        print("\nprint_data: text=", text)


class SelectableRecycleGridLayout(FocusBehavior, LayoutSelectionBehavior,
                                  RecycleGridLayout):
    ''' Adds selection and focus behaviour to the view. '''


class RootWidget(Screen):
    def __init__(self, **kwargs):
        super(RootWidget, self).__init__(**kwargs)
        self.ids.rv.data = [{'text': str(x)} for x in range(100)]


class TestApp(App):
    def build(self):
        return RootWidget()


if __name__ == '__main__':
    TestApp().run()
class Track(RecycleDataViewBehavior, Button):

    def print_data(self, text):
        print("\nprint_data: text=", text)


class SelectableRecycleGridLayout(FocusBehavior, LayoutSelectionBehavior,
                                  RecycleGridLayout):
    ''' Adds selection and focus behaviour to the view. '''
from kivy.app import App
from kivy.uix.recycleview import RecycleView
from kivy.uix.recycleview.views import RecycleDataViewBehavior
from kivy.uix.recyclegridlayout import RecycleGridLayout
from kivy.uix.behaviors import FocusBehavior
from kivy.uix.recycleview.layout import LayoutSelectionBehavior
from kivy.uix.button import Button


class Track(RecycleDataViewBehavior, Button):

    def print_data(self, text):
        print("\nprint_data: text=", text)


class SelectableRecycleGridLayout(FocusBehavior, LayoutSelectionBehavior,
                                  RecycleGridLayout):
    ''' Adds selection and focus behaviour to the view. '''


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()
#:kivy 1.11.0

<Track>:
    on_release:
        root.print_data(self.text)

<RV>:
    viewclass: 'Track'
    SelectableRecycleGridLayout:
        cols: 1
        default_size: None, dp(56)
        default_size_hint: 1, None
        size_hint_y: None
        height: self.minimum_height
        orientation: 'vertical'
        multiselect: True
        touch_multiselect: True