如何将多列放入kivy RecycleView中?

2023-11-30

我想将(csv-)表的数据放入 kivy recycleview 中。

如果我为 kv 中的标签分配固定文本,我设法用一行插入多列,但我无法让它用字典列表中的数据填充标签。这是到目前为止我用来测试这个概念的代码:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView
from kivy.uix.boxlayout import BoxLayout
import csv

items = [{'SP1': 'Artikelnummer', 'SP2': 'Name', 'SP3': 'Groesse'},
    {'SP1': '510001', 'SP2': 'Big Pump', 'SP3': '1.50 L'},
    {'SP1': '523001', 'SP2': 'Leonie Still', 'SP3': '1.50 L'},
    {'SP1': '641301', 'SP2': 'Cola Mix', 'SP3': '1.50 L'}
]

class Tabelle(BoxLayout):
    def __init__(self, **kwargs):
        super(Tabelle, self).__init__(**kwargs)

    def insert_SP(self, data):
        for i in data:
            self.spalte1_SP = i['SP1']
            #print(self.spalte1_SP)
            self.spalte2_SP = i['SP2']
            self.spalte3_SP = i['SP3']

Builder.load_string('''
<Tabelle>:
    orientation: 'horizontal'
    spalte1_SP: 'spalte1'
    spalte2_SP: 'spalte2'
    spalte3_SP: 'spalte3'
    Label:
        id: Spalte1
        text: root.spalte1_SP
    Label:
        id: Spalte2
        text: root.spalte2_SP
    Label:
        id: Spalte3
        text: root.spalte3_SP

<RV>:
    viewclass: 'Tabelle'
    RecycleBoxLayout:
        default_size: None, dp(20)
        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 = []
        x = Tabelle()
        x.insert_SP(items)

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

if __name__ == '__main__':
    TestApp().run()

我希望看到来自的数据items分为 3 列,但由于某种原因它们保持为空。


它是空的,因为data无人居住。

Solution

  • 删除所有编码class Tabelle()
  • Add pass into class Tabelle()
  • 将以下内容添加到构造函数中,__init__() of class RV()

Snippets

self.data = [{'spalte1_SP': str(x['SP1']), 'spalte2_SP': str(x['SP2']), 'spalte3_SP': str(x['SP3'])} for x in items]

Kivy Recycle查看 » 数据

视图是通过处理生成的data,本质上是一个列表 字典,并使用这些字典生成视图类的实例 按要求。

data

当前视图适配器使用的数据。这是一个字典列表 其键映射到视图类的相应属性名称。

data 是一个 AliasProperty,用于获取和设置用于生成的数据 观点。

Example

main.py

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView
from kivy.uix.boxlayout import BoxLayout

items = [{'SP1': 'Artikelnummer', 'SP2': 'Name', 'SP3': 'Groesse'},
         {'SP1': '510001', 'SP2': 'Big Pump', 'SP3': '1.50 L'},
         {'SP1': '523001', 'SP2': 'Leonie Still', 'SP3': '1.50 L'},
         {'SP1': '641301', 'SP2': 'Cola Mix', 'SP3': '1.50 L'}
         ]


class Tabelle(BoxLayout):
    pass


Builder.load_string('''
<Tabelle>:
    orientation: 'horizontal'
    spalte1_SP: 'spalte1'
    spalte2_SP: 'spalte2'
    spalte3_SP: 'spalte3'
    Label:
        id: SP1
        text: root.spalte1_SP
    Label:
        id: SP2
        text: root.spalte2_SP
    Label:
        id: SP3
        text: root.spalte3_SP

<RV>:
    viewclass: 'Tabelle'
    RecycleBoxLayout:
        default_size: None, dp(20)
        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 = [{'spalte1_SP': str(x['SP1']), 'spalte2_SP': str(x['SP2']), 'spalte3_SP': str(x['SP3'])} for x in items]


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


if __name__ == '__main__':
    TestApp().run()

Output

Result

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将多列放入kivy RecycleView中? 的相关文章

随机推荐

  • 可访问性不一致:属性类型

    这段代码有什么问题 public ScreenManager ScreenManager get return screenManager internal set screenManager value ScreenManager scr
  • 从外部访问 EC2 实例内 minikube NodePort 上运行的应用程序

    我有一个 EC2 实例 说它的 IP 是 44 XX XX XX 说 IP1 我有一个在这个 EC2 实例中运行的 minikube 说它的 IP 是 10 XX XX XX 说 IP2 我通过在 EC2 实例中执行 minikube ip
  • Outlook 是否在其电子邮件元素中嵌入了 MessageID 或等效内容?

    我想要自动化 Outlook 以便我可以下载电子邮件的 各个部分 以便我可以将相关消息捆绑在一起 据我所知 电子邮件通常有一个 MessageID 来达到此目的 以便可以在上下文中查看电子邮件 就像新闻阅读器中的 线程 捆绑在一起一样 Ou
  • Chart.js - 设置 Y 轴格式

    我在用着Chart js绘制一个简单的条形图 我需要将其 Y 轴格式化为 123456 05 至 123 456 05 我不明白如何使用scaleLabel I saw 有人指着 to JS 微模板 但不知道如何与我们一起使用它scaleL
  • 有没有办法以编程方式禁用特定布局中的所有项目?

    我最近在一款游戏中添加了全球高分功能 这让很多人感到不安 所以我想添加禁用它的选项 我所做的是 在我的设置活动视图中 我添加了以下内容
  • 如何根据包含空格的字段名对 ADO 表进行排序?

    我正在使用 Delphi 但这是一个简单且普遍的问题 我正在执行以下操作 var ArticlesTable TADOTable begin ArticlesTable DisableControls ArticlesTable Sort
  • sql中行的级联复制

    我在这里找到了这个线程 http www sqlteam com forums topic asp TOPIC ID 16836我也有完全一样的问题 引用 Rob Pearmain 写道 我有 3 张桌子来存放问题 表 1 问题 字段 ID
  • 如何在httppost/httpget请求中设置标头

    我有一个像 post H Authorization Token token 2hwhdh443hdhfh43j3jdej3j3 这样的网络服务 如何在 httpPost get 请求中设置此标头 我的代码在这里 HttpClient cl
  • 是否可以为 .NET 编写函子接口?

    函数式语言通常具有Functor类型 接口 在 NET 中 Functor 接口是可通过泛型类型实现的接口 T a 有一个名为 fmap 的函数 该函数从容器类型 A 到不同的类型 B 并返回一个容器类型为 B 的对象 例如一个类型List
  • 使用 boost::spirit 读取空值

    我想将 CSV 读入结构中 struct data std string a std string b std string c 但是 我想读取空字符串以确保所有值都位于正确的位置 我将该结构调整为 boost fusion 因此以下工作有
  • 如何设置 Visual Studio Code 来编译 C++ 代码?

    微软的视觉工作室代码编辑器相当不错 但它没有默认支持构建 C 项目 我如何配置它来执行此操作 构建任务是特定于项目的 要创建新项目 请在 Visual Studio Code 中打开一个目录 Following the instructio
  • 使用 jQuery 解析远程内容的最佳实践是什么?

    在 jQuery ajax 调用检索整个 XHTML 文档之后 从结果字符串中选择特定元素的最佳方法是什么 也许有一个库或插件可以解决这个问题 jQuery 只能选择字符串中存在的 XHTML 元素 如果 W3C 规范中的 div 中通常允
  • 使用 Retrofit 将 json 结构转换为数组

    我遇到了 Retrofit 和 Trakt tv API 中丑陋的 json 对象的麻烦 season 1 episodes 1 true 2 true 3 false 4 false 5 false 6 false 7 false epi
  • 直接从 JSON 文件获取数据帧?

    首先 我要感谢所有为 Stackoverflow 和 R 做出贡献的人 我是那些不太擅长编程的 R 用户之一 但勇敢地尝试在工作中使用它 所以下面的问题可能是微不足道的 问题就在这里 我需要将 JSON 格式的文件导入到 R library
  • 滚动视图中的多个文本视图

    我有一项活动以文本形式显示步行方向 我有一组 TextView 其中 5 个包含 步骤 x 其中 x 是步骤号 另外 5 个 TextView 包含实际说明 问题是最后一个 TextView 离开屏幕 所以我想让这组 TextView 滚动
  • elasticsearch 2.0 父子孙子

    我的操作 父级 国家 地区 子级 分支机构 孙级 员工 PUT company 映射 分支 父 类型 国家 员工 父 类型 分支 我想添加一个孙子employee2 父级是分支 PUT company employee2 mapping e
  • 结构名称是否指向第一个元素?

    我发现了一些类似的问题 但没有一个有多大帮助 结构名称是否指向结构的第一个元素 类似于数组 struct example int foo int bar struct example e e foo 5 e bar 10 printf d
  • 隐藏提交按钮直到表单有效

    我对 Jquery 相当陌生 所以这可能是一个简单的问题 但是有没有办法隐藏表单上的提交按钮 直到验证所有字段 验证需要是 键入时 的解决方案 基本上我有 3 个字段 名字 姓氏和电子邮件 我希望提交按钮保持隐藏状态 直到填写了两个 名称
  • Ogre/Mogre:相机两点透视

    我正在显示一个场景 其中有一些立方体 相机采用的是透视法 一切都很好 但我希望垂直线是平行的 两点透视 http en wikipedia org wiki Perspective graphical 两点透视 从正面观察立方体时 我想要的
  • 如何将多列放入kivy RecycleView中?

    我想将 csv 表的数据放入 kivy recycleview 中 如果我为 kv 中的标签分配固定文本 我设法用一行插入多列 但我无法让它用字典列表中的数据填充标签 这是到目前为止我用来测试这个概念的代码 from kivy app im