获取动态添加文本框的值

2023-12-23

我有两个文件test.py and test.kv
在测试.kv中text: "+Add More"添加行动态垂直位置。我正在 .py 中创建动态 id

self.add_widget(Row(button_text=str(self.row_count),id=str("test"+str(self.row_count))))

在 .kv 文件中我分配 id

id : root.id

谁能告诉我如何获得所有动态值value1,value2,value3 in .py file
任何建议或指导将不胜感激..!!

[![在此处输入图像描述][1]][1]

test.py

from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import BooleanProperty, ListProperty, StringProperty, ObjectProperty, NumericProperty

Window.size = (450, 525)


class display(Screen):

    def add_more(self):
        self.ids.rows.add_row()

    def insert_value(self):
        print(Row().id)
        #print(self.ids.)



class Row(BoxLayout):
    button_text = StringProperty("")
    id = ObjectProperty(None)



class Rows(BoxLayout):
    orientation = "vertical"
    row_count = 0

    def __init__(self, **kwargs):
        super(Rows, self).__init__(**kwargs)
        self.add_row()

    def add_row(self):
        self.row_count += 1
        self.add_widget(Row(button_text=str(self.row_count),id=str("test"+str(self.row_count))))


class test(App):

    def build(self):
        self.root = Builder.load_file('test.kv')
        return self.root

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

test.kv

<Row>:
    #state1 : state1
    orientation: "horizontal"
    spacing: 0, 5

    Button:
        text: root.button_text
        size_hint_x: .2

    TextInput:
        #text : root.id
        size_hint_x: .8
        id : root.id

display:

    BoxLayout:
        orientation: "vertical"
        padding : 20, 20

        BoxLayout:
            orientation: "horizontal"

            Button:
                size_hint_x: .2
                text: "+Add More"
                valign: 'bottom'
                on_press: root.add_more()


        BoxLayout:
            orientation: "horizontal"

            Label:
                size_hint_x: .2
                text: "SN"
                valign: 'bottom'

            Label:
                size_hint_x: .8
                text: "Value"
                valign: 'bottom'


        Rows:
            id: rows

        BoxLayout:
            orientation: "horizontal"
            padding : 10, 0
            spacing: 10, 10
            size_hint: .5, .7
            pos_hint: {'x': .25, 'y':.25}

            Button:
                text: 'Ok'
                on_release:
                    root.insert_value()

            Button:
                text: 'Cancel'
                on_release: root.dismiss()

首先您必须访问Rows为此,我们使用 ids,因为他有一个 id:

    Rows:
        id: rows

然后你访问每个Row通过子项,因为当您使用 add_widget 时存储在此处ListProperty,对 Row 也进行同样的操作,但是isinstance()用于过滤TextInput,之后获取文本并将其添加到列表中。

值得注意的是,最大的孩子排在最后,因为它reversed()用来。

from kivy.uix.textinput import TextInput
[...]

    def insert_value(self):
        values = []
        rows = self.ids.rows
        for row in reversed(rows.children):
            for ch in row.children:
                if isinstance(ch, TextInput):
                    values.append(ch.text)
        print(values)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取动态添加文本框的值 的相关文章

随机推荐

  • 连接更改上的 API 挂钩

    我在 Android 手机上有一个打印机检查应用程序 它的基本检查表即使检查员没有互联网连接 也可以进行打印机检查 一旦电话恢复接收 互联网 我想提交检查 我正在考虑使用 Android 服务来设计应用程序因此它将使用 sqlite 保存检
  • hashCode 或 equals 中的 HibernateException

    我正在使用 spring 和 hibernate 当在没有实现 equals 和 hashCode 的情况下进行获取时 一切正常 当我添加这两个方法并执行查询时 哈希码内会抛出一个 LazyinitializationException 我
  • Django:无法导入名称

    我刚刚在向我的网站部署新更新时遇到了一个非常烦人的问题 我有两个独立的网站 其中之一是开发版本 现在 当我想将更改应用于生产时 由于错误消息 它将无法工作 文件 usr lib python2 6 dist packages django
  • 无法粘贴到 MacVim 中

    我从 Vim 外部复制文本 其他应用程序中的 V 粘贴文本没有问题 在 MacVim 中 它不起作用 在插入模式下 什么也没有出现 在正常模式下 我得到E353 Nothing in register 发生这种情况时set clipboar
  • 为什么 AspectJ @Around 建议执行两次?

    我有以下 AspectJ 示例 它是作为 hello world 风格的概念证明而完成的 中的建议代码StyleAspect似乎执行了两次 即使实际代码在SomeClass仅执行一次 根据需要 这是代码 首先 一个名为 WithStyle
  • 从 Mozilla Firefox 重定向到 Android 应用程序 - 深层链接

    我使用意图过滤器来允许深度链接到我的应用程序的活动 就像下面给出的例子一样 https developer android com training app indexing deep linking html https develope
  • 从 jQuery 返回 PHP

    我想通过 jQuery 回显 HTML 下拉值
  • 实施 Spring-Social 记住我

    我有一个启用 Spring Security 的项目 我已经使用登录表单实现了 记住我 效果很好 但我在登录表单上也有来自 google facebook 的社交登录 效果很好 问题是他们不记得用户 有没有办法设置类似的 记住我 功能 我当
  • 回滚时,App 和 DB 哪个应该主动执行任务?

    MySql InnoDB 设置自动提交关闭并使用默认隔离级别 REPEATABLE READ 有两种场景 两个不同的事务 T1 和 T2 按以下时间顺序运行 1 time T1 T2 t1 update row 1 gt OK t2 upd
  • 使用 Gson 反序列化 Java 8 LocalDateTime

    我有带有 2014 03 10T18 46 40 000Z 格式的日期时间属性的 JSON 我想使用 Gson 将其反序列化为 java time LocalDateTime 字段 当我尝试反序列化时 出现错误 java lang Ille
  • 将 po 文件编译为 mo 的好处

    编译 GNU gettext 的好处和主要原因是什么 po 可移植对象 文件到 mo 机器对象 我看到很多程序正在读取 解析 po直接地 我没有使用 wordpress 但在他们的文档中它说 https codex wordpress or
  • github 52 周参与如何运作?

    我对我的 github 52 周参与图感到困惑 我在那里的大多数项目只有一位作者 我 然而 在 52 周的参与中 所有者的承诺 为零 尽管我所有的承诺都是由我自己完成的 我的页面 https github com yule https gi
  • Phonegap Pushnotification + node-gcm:群组通知

    我在 Node 应用程序中有这样的东西 var sender new gcm Sender XPTO var registrationIds whatever var message new gcm Message data avatar
  • Android 可绘制对象对于 API <23 显得拉伸,而对于 API 23 及更高版本则正确

    我目前正在为我的列表视图使用列表选择器 并使用图层列表创建它 这是我的 xml 代码
  • 在 matplotlib 中用两个 Y 轴(两个单位)绘制单个数据

    我正在尝试绘制单个时间序列 但想用左轴和右轴上的两个单位表示它 这是我到目前为止所做的 fig ax1 plt subplots t np arange 1 50 1 s1 np sin t 20000 40000 synthetic ts
  • POST 到 HTTPS 身份验证错误

    这是使用 C 控制台应用程序发布到 https 站点的简单帖子 我也对 Web 服务使用了相同的内容 当我运行它时它冻结了 下载了 fiddler 并在 身份验证 选项卡中我看到 不存在代理验证标头 不存在 WWW 验证标头 早些时候我使用
  • Objective-C 获取可为空 bool 的方法是什么?

    我应该如何获取一个可以在 Objective C 中分配 true false 和 nil 的 bool 值 Objective C 这样做的方式是什么 很像 C 的 Nullable 我希望能够使用 nil 值来表示未定义 An NSNu
  • 使用Gmail API发送电子邮件,在正文中编码希腊字符

    我正在更新一个用于发送电子邮件的应用程序 以使用 GMAIL API 而不是 SMTP 我遇到电子邮件编码问题 主题已按其应有的方式显示 但主体未正确显示 以下是收到的邮件截图 我用来发送电子邮件的代码 public bool SendMa
  • 如何自定义列系列中的列宽?

    我想知道是否可以自定义条形图的列宽 Regards Franco 简短的回答 是的 请参阅this http lvcharts net App documentation beta LiveCharts Wpf ColumnSeries 默
  • 获取动态添加文本框的值

    我有两个文件test py and test kv在测试 kv中text Add More 添加行动态垂直位置 我正在 py 中创建动态 id self add widget Row button text str self row cou