Kivy:已弃用功能的替代方案

2023-12-07

我正在尝试适应这个code但我仍然是第一步,因为我不理解大多数称为 like like 的功能可选数据项, Adapter, 列表适配器 or 可选视图.

当我在 kivy 网站上查找它们时,我发现它们被列为已弃用。我在 Kivy 网站上找不到这些功能的任何替代品,并且我不想构建具有已弃用功能的应用程序。

所以我的问题是:这四个功能的替代方案是什么,或者换句话说,我应该如何修改代码,以便它不会调用已弃用的功能。


看一眼回收视图
我用 RecyclerView 写了一个你可能想要的示例

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty
from kivy.uix.recycleview.views import RecycleDataViewBehavior



items = [
    {"text": "white",    "selected": 'normal', "input_data": ["some","random","data"]},
    {"text": "lightblue","selected": 'normal', "input_data": [1,6,3]},
    {"text": "blue",     "selected": 'normal', "input_data": [64,16,9]},
    {"text": "gray",     "selected": 'normal', "input_data": [8766,13,6]},
    {"text": "orange",   "selected": 'normal', "input_data": [9,4,6]},
    {"text": "yellow",   "selected": 'normal', "input_data": [852,958,123]},
    {"text": "white",    "selected": 'normal', "input_data": ["some","random","data"]},
    {"text": "lightblue","selected": 'normal', "input_data": [1,6,3]},
    {"text": "blue",     "selected": 'normal', "input_data": [64,16,9]},
    {"text": "gray",     "selected": 'normal', "input_data": [8766,13,6]},
    {"text": "orange",   "selected": 'normal', "input_data": [9,4,6]},
    {"text": "yellow",   "selected": 'normal', "input_data": [852,958,123]}
]



class MyViewClass(RecycleDataViewBehavior, BoxLayout):

    text = StringProperty("")
    index = None

    def set_state(self,state,app):
        app.root.ids.rv.data[self.index]['selected'] = state

    def refresh_view_attrs(self, rv, index, data):
        self.index = index
        return super(MyViewClass, self).refresh_view_attrs(rv, index, data)



class MyRecycleView(RecycleView):

    data = items

    def print_data(self,data):
        print([item['input_data'] for item in data if item['selected'] == 'down'])



KV = '''

<MyViewClass>:
    orientation: 'horizontal'
    CheckBox:
        on_state: root.set_state(self.state,app)
    Label:
        text: root.text

BoxLayout:
    orientation: 'vertical'
    MyRecycleView:
        id: rv
        viewclass: 'MyViewClass'
        RecycleBoxLayout:
            orientation: 'vertical'
            default_size: None, dp(56)
            default_size_hint: 1, None
            size_hint_y: None
            height: self.minimum_height
    Button:
        size_hint_y: 0.1
        text: "Print data"
        on_release: rv.print_data(rv.data)

'''



class Test(App):
    def build(self):
        root = Builder.load_string(KV)
        return root


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

Kivy:已弃用功能的替代方案 的相关文章

随机推荐

  • 尝试获取 ENTER 键的字符代码

    我有这个代码 newSymbolTextBox addKeyPressHandler new KeyPressHandler public void onKeyPress KeyPressEvent event System out pri
  • 在 Flash Professional 中使用 Flex SDK 时出现问题(针对 as3corelib)

    我最近在寻找将舞台渲染到文件的方法时发现了 Mike Chambers 的 as3corelib 在我的 Flash Professional 中的 ActionScript 3 0 项目中效果很好 CS6 如果有的话 我决定查看 Mike
  • 四面体的重心坐标

    我想寻求有关四面体重心坐标的帮助 按照我在这里找到的方法 http www cdsimpson net 2014 10 barycentric coordinates html我实现了一个 C 函数来查找四面体中点的重心坐标 float S
  • 在 Mavericks OS X 10.9.2 中使用 Git 时出现 SSLRead() 错误

    因为我通过 Mavericks OS X 10 9 2 的 MBP 中的 Xcode tools 安装了 Git 我无法将现有存储库克隆到我的计算机中 我很确定问题出在我当前的计算机上 因为该存储库在其他 PC 上运行良好 错误是 amor
  • 如何添加外部包并在 Rust 编译器中运行?

    我正在使用 Rust 编译和构建一个示例程序 我选择了rustc代替cargo用于编译 因为它是一个简单的个人测试项目 到目前为止使用rustc用于编译和构建可执行文件工作正常 但是当我尝试添加外部rand包给了我这个错误 1 extern
  • Rails 不适用于新项目。显示错误“类 Cipher 的超类不匹配 (TypeError)”

    我的 Rails 和 ruby 目前已更新 rails v gt 导轨 5 0 1 ruby v gt ruby 2 4 0p0 2016 12 24 修订版 57164 x86 64 linux 创建了一个新的 Rails 应用程序 Ra
  • 从 Woocommerce 中的优惠券使用中排除具有 2 个特定属性术语的变体

    如果客户的购物车中有任何具有以下属性条款的特定产品变体 我需要防止使用优惠券 attribute pa style gt swirly attribute pa style gt circle 我查看了适用于限制特定产品和特定类别的 Woo
  • 特定时间码的 ffmpeg vfilter

    我想向某些视频添加水印 但我只希望水印出现在视频中的某些时间码 例如开始 中间 结束 并且仅出现几秒钟 我已经让 ffmpeg 按照此处的说明进行水印 但我不知道如何在不同的时间码打开 关闭水印 这是我用来添加水印的命令 ffmpeg i
  • 在 Powershell 中读取 Excel 工作表

    下面的脚本读取 Excel 文档的工作表名称 我该如何改进它 以便它可以提取每个工作表中 B 列的所有内容 从第 5 行开始 因此第 1 4 行被忽略 并创建一个对象 例如 如果工作表 1 中的 B 列 称为伦敦 具有以下值 Marleyb
  • Java 垃圾收集如何与循环引用一起使用?

    根据我的理解 如果没有其他东西 指向 某个对象 Java 中的垃圾收集会清理一些对象 我的问题是 如果我们有这样的事情会发生什么 class Node public object value public Node next public
  • 从 Eclipse RCP 应用程序中删除“文件、编辑等”菜单

    我想从我的 RCP 应用程序中删除 文件 编辑 源 重构 等菜单 我可以用吗hideActionSet 或者我应该做什么 这是正确的 在你的应用程序工作台窗口顾问 覆盖发布窗口打开 棘手的一点通常是找出要删除的操作集的名称 但您可以使用旧的
  • 正则表达式空白字符会导致注入吗?

    如果我想验证a的输入
  • EF 5 AddOrUpdate 重复数据

    这是种子方法中的代码 var city new City Name A var nh new List
  • 选择日期后,显示错误的月份[重复]

    这个问题在这里已经有答案了 我正在使用日期选择器 但每当我选择任何日期时 它都会显示 1 个月 例如 如果我选择 12 12 2016 它将显示在文本框中 12 11 2016 如果我选择 3 1 2017 它将显示 3 0 2017 这是
  • 我无法在任何地方访问我的数组对象,如何快速访问它们?

    如何在另一个函数中访问我的数组对象 即来自 arr 和电子邮件的数组对象 到目前为止 当我调用 auth auth 函数时 我只能访问 else 语句内的数组对象 我想知道如何才能做到这一点 let store CNContactStore
  • HttpListener - 如何将 WebException HTTP 304“未修改”错误发送回浏览器?

    如果我使用 HttpListener 如何将 WebException 304 错误模拟回浏览器 也就是说 我收到了对 HttpListener 的请求 然后获得了 HttpListenerContext 那么从现在开始 我将如何模仿 安排
  • 与 JPA 的数据库独立字符串比较

    我正在使用 JPA Hibernate 作为提供者 和底层 MySQL 数据库 我有一张表 其中包含德国所有街道的名称 每个街道名称都有一个唯一的编号 对于一项任务 我必须找出姓名的编号 为此 我编写了一个 JPQL 查询 如下所示 SEL
  • 使用 R 绘图在 R 中绘制点图

    生成具有这样两个因素的点图的最佳方法是什么 最好使用标准 R 图 而不是 ggplot 并从 2x2 数据框生成 水平线应该是手段 我尝试过克利夫兰点图 但无法弄清楚如何获取两个数据系列并让点抖动 下面的代码应该可以解决这个问题 set s
  • 为 Firebase 云消息传递 PHP 生成 OAUTH 令牌

    我有一个 PHP 页面 我用它来向我开发的移动应用程序的用户发送通知 该页面直到上个月都工作正常 然后它给了我这个错误 multicast id 5174063503598899354 成功 0 失败 1 canonical ids 0 结
  • Kivy:已弃用功能的替代方案

    我正在尝试适应这个code但我仍然是第一步 因为我不理解大多数称为 like like 的功能可选数据项 Adapter 列表适配器 or 可选视图 当我在 kivy 网站上查找它们时 我发现它们被列为已弃用 我在 Kivy 网站上找不到这