如何在kivymd中从for循环到python文件获取用户输入的数据

如何在kivymd中从for循环到python文件获取用户输入的数据,python,kivy,kivymd,Python,Kivy,Kivymd,我正在制作一个应用程序来乘以2矩阵。为此,我创建了用户界面,但不知道如何在python文件中获取用户输入,因此我可以在那里进行操作 这是我的kivy档案 #: import MDTextField kivymd.uix.textfield.MDTextField <MyApp>: NavigationLayout: ScreenManager: Screen: name: "screen

我正在制作一个应用程序来乘以2矩阵。为此,我创建了用户界面,但不知道如何在python文件中获取用户输入,因此我可以在那里进行操作

这是我的kivy档案

#: import MDTextField kivymd.uix.textfield.MDTextField
<MyApp>:    
    NavigationLayout:
        ScreenManager:
            Screen:
                name: "screen1"
                GridLayout:
                    cols: 4
                    padding: 30
                    spacing: 20
                    size: root.width * 0.4, root.height * 0.8
                    row_force_default: True
                    row_default_height: 30
                    pos_hint: {'center_x': 0.5,'center_y':0.55}
                    size_hint: (None, None)
                    size: self.minimum_size
                    top: self.height
                    on_parent:
                        for i in range(16): self.add_widget(MDTextField(hint_text= 'sc', helper_text= 'hello', size_hint_x= None, width = 40))

                MDRectangleFlatButton:
                    text: 'back'
                    pos_hint: {'center_x': 0.5, 'center_y': 0.4}
                    on_release:
                        app.find_multiply()
#:导入MDTextField kivymd.uix.textfield.MDTextField
:    
导航布局:
屏幕管理器:
屏幕:
名称:“屏幕1”
网格布局:
科尔斯:4
填充:30
间距:20
尺寸:根宽*0.4,根高*0.8
行\强制\默认值:True
行\默认\高度:30
位置提示:{'center_x':0.5,'center_y':0.55}
大小提示:(无,无)
尺寸:自身最小尺寸
顶部:自我高度
关于家长:
对于范围(16)中的i:self.add_小部件(MDTextField(提示_文本='sc',助手_文本='hello',大小_提示_x=无,宽度=40))
MDRectangleFlatButton:
文本:“返回”
位置提示:{'center_x':0.5,'center_y':0.4}
发布时:
app.find_multiply()
因为我的MDTextField在for循环中,所以我不能在那里使用id,因为从中我将得到所有16个具有相同id的文本字段。
如何在应用程序中获取所有16个文本字段的输入。在python文件中查找乘法函数,以便在那里执行操作。

存储对文本字段的引用,然后访问它们以执行所需操作

我会删除你的
,用你自己的类
MyGridLayout(GridLayout):
替换
GridLayout
,并让该类执行以下操作:

def __init__(self, **kwargs):
    super().__init__(**kwargs)
    self.text_fields = [MdTextField(hint_text= 'sc', helper_text= 'hello', size_hint_x= None, width = 40))] for _ in range(16)]
然后,当您以后想要访问它们时,您可以遍历,例如,
entered_numbers=[int(field.text)for field in self.text_field]

当然,这只是一个基本的例子,实际上,您需要错误检查等