如何在kivymd中从for循环到python文件获取用户输入的数据
我正在制作一个应用程序来乘以2矩阵。为此,我创建了用户界面,但不知道如何在python文件中获取用户输入,因此我可以在那里进行操作 这是我的kivy档案如何在kivymd中从for循环到python文件获取用户输入的数据,python,kivy,kivymd,Python,Kivy,Kivymd,我正在制作一个应用程序来乘以2矩阵。为此,我创建了用户界面,但不知道如何在python文件中获取用户输入,因此我可以在那里进行操作 这是我的kivy档案 #: import MDTextField kivymd.uix.textfield.MDTextField <MyApp>: NavigationLayout: ScreenManager: Screen: name: "screen
#: 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]
当然,这只是一个基本的例子,实际上,您需要错误检查等