Python 3.x RecycleView和ScreenManager问题

Python 3.x RecycleView和ScreenManager问题,python-3.x,kivy,Python 3.x,Kivy,在使用Recycleview时,似乎无法解决从数据库获取数据以填充到各种文本输入的问题。这个问题只有在我使用ScreenManager/Screen时才存在。当我直接从def build(self):return屏幕调用屏幕时,一切正常,但当我像这样调用屏幕管理器def build(self):return屏幕管理器时,一切正常 kv文件 : 按:app.root.get_data(*args) : 盒子布局: 方向:“垂直” 大小\u提示\u x:.3 房车: viewclass:“按钮” 数

在使用Recycleview时,似乎无法解决从数据库获取数据以填充到各种文本输入的问题。这个问题只有在我使用ScreenManager/Screen时才存在。当我直接从
def build(self):return屏幕调用屏幕时,一切正常,但当我像这样调用屏幕管理器
def build(self):return屏幕管理器时,一切正常

kv文件

:
按:app.root.get_data(*args)
:
盒子布局:
方向:“垂直”
大小\u提示\u x:.3
房车:
viewclass:“按钮”
数据:[{'text':str(x)}在root.my_数据中表示x]
循环利用布局:
方向:“垂直”
默认大小:无,dp(32)
默认大小提示:1,无
尺寸提示:无
高度:自身最小高度
方法
获取数据()
和变量、我的数据在类屏幕中实现。如果没有ScreenManager,根目录就是Screen。添加ScreenManager后,现在根目录是ScreenManager。要从类规则按钮访问方法
get_data()
,您需要执行以下操作:

  • 在实例化类规则后,在
    ScreenManager
    下添加
    id:screen\u rv
  • app.root.get_数据(*args)
    替换为
    app.root.ids.screen\u rv.get_数据(*args)
kv-片段
:
ScreenRV:
id:屏幕
:
按下:app.root.ids.screen\u rv.get\u data(*args)
:
名称:'screen_rv'

当您执行
返回屏幕
操作时,它会从名为
屏幕
的kv文件中返回小部件。当您有多个屏幕要切换时,将使用ScreenManager。由于您没有在任何地方定义名为
ScreenManager
的类,我猜您的应用程序只是一个空白屏幕。youtube上有一些关于如何在kivy中与屏幕/屏幕经理合作的好视频(包括我的!)。非常欢迎您。谢谢你的积极反馈。
<Button>:
    on_press: app.root.get_data(*args)
<Screen>:
    BoxLayout:
        orientation: 'vertical'
        size_hint_x: .3
        RV:
            viewclass: 'Button'
            data: [{'text': str(x)} for x in root.my_data]
            RecycleBoxLayout:
                orientation: 'vertical'
                default_size: None, dp(32)
                default_size_hint: 1, None
                size_hint_y: None
                height: self.minimum_height
<ScreenManagement>:
    ScreenRV:
        id: screen_rv

<Button>:
    on_press: app.root.ids.screen_rv.get_data(*args)

<ScreenRV>:
    name: 'screen_rv'