windows 如何在Kivy应用程序中获得Textinputs值,并在Python 3.9脚本中使用For循环添加这些值?

nbewdwxp  于 2022-11-30  发布在  Windows
关注(0)|答案(1)|浏览(106)

我有一个Python 3.9脚本中的Kivy应用程序。我使用For循环添加了许多标签和Textinputs,所以我没有Textinputs的名称。有没有办法扫描我所有的应用程序,并获得Textinputs值?我已经尝试使用屏幕截图和Pytesseract,但我没有得到所有的值。oidoss. Windows 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_new_values)
        box.add_widget(button())
        def get_new_values(self,instance):
            print('New values: '+self.values)
jq6vz3qz

jq6vz3qz1#

在循环中创建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

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

相关问题