【问题标题】:How to get Textinputs values in a Kivy App, added by using a For cycle in a Python 3.9 script?如何在 Kivy 应用程序中获取 Textinputs 值,通过在 Python 3.9 脚本中使用 For 循环添加?
【发布时间】:2022-11-29 00:49:37
【问题描述】:

我有一个 Python 3.9 脚本中的 Kivy 应用程序。 我使用 For 循环添加了许多标签和文本输入,所以我没有文本输入的名称。 有没有办法扫描我所有的应用程序,并获取 Textinputs 值? P.s.:我已经尝试过使用 Screenshot 和 Pytesseract,但我没有得到所有值。 操作系统视窗 10。 谢谢

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
class app(App):
def build(self):
    box=BoxLayout(orientation='vertical')
    self.labels=['label1: ','label2: ','label3: ','label4: ','label5: ']4
    self.values=['40','30','25','180','1500']
    grid=GridLayout(cols=2)
    c=0
    for text in self.labels:
        grid.add_widget(Label(text=text)
        grid.add_widget(TextInput(text=self.values[c]))
        c+=1
    box.add_widget(grid)
    button=Button(text='GET') #updating values in textinputs,before clicking button
    button.bind(on_press=self.get)
    box.add_widget(button())
    def get(self,instance):
        print('New '+self.values)

【问题讨论】:

    标签: python-3.x windows kivy textinput


    【解决方案1】:

    在循环中创建 TextInputs 之前,创建一个空列表。

    _my_list = []
    

    在循环内,将每个附加到此列表。

    textinput = TextInput(text='Hello world')
    _my_list.append(textinput)
    your_widget.append(textinput)
    

    然后你可以像这样引用它们

    for one in _my_list:
        print(one.text)  # this prints the text value of one TextInput
    

    或者可以创建一个空字典并使用唯一键将每个项目添加到字典中。

    【讨论】:

    • 感谢您的帮助,但我的问题是更新后我需要值
    • 我用标签和文本输入填充窗口(使用 for 循环),更新文本输入的值,然后在单击按钮后获得更新的值。
    • 人们会从您连接到按钮的方法中调用该代码。如果您可以使用显示您尝试过的代码修改您的问题,这将有所帮助。
    猜你喜欢
    • 2023-02-03
    • 1970-01-01
    • 2019-09-11
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多