在Kivy Python中将数组显示为表

在Kivy Python中将数组显示为表,python,arrays,layout,android-recyclerview,kivy,Python,Arrays,Layout,Android Recyclerview,Kivy,我是Kivy的新手,有一个问题:我有两个数组 X=[[1,2,3], and Sum-Rows= [[6], [4,5,6], [15], [7,8,9]] [24]] 如何在Kivy Python中将这些数组的元素显示为表 first Value Second Value Third Val

我是Kivy的新手,有一个问题:我有两个数组

X=[[1,2,3],    and            Sum-Rows= [[6],
   [4,5,6],                              [15], 
   [7,8,9]]                              [24]]
如何在Kivy Python中将这些数组的元素显示为表

             first Value      Second Value      Third Value     Sum
first row        1                 2                 3           6
second row       4                 5                 6           15
third row        7                 8                 9           24
我想我们可以找到解决办法吗? 谢谢

这是我的代码: main.py

来自kivy.lang导入生成器
从kivy.uix.label导入标签
从kivy.properties导入ObjectProperty、StringProperty
从kivy.uix.textinput导入textinput
从kivy.app导入应用程序
从kivy.core.window导入窗口
从kivy.uix.screenmanager导入screenmanager,屏幕
从kivy.clock导入时钟
从kivy.uix.gridlayout导入gridlayout
将numpy作为np导入
Window.clearcolor=(0.5,0.5,0.5,1)
Builder.load_文件('MyMain.kv')
类主窗口(网格布局):
定义初始(自我,**kwargs):
超级(主窗口,自我)。\uuuuu初始化(**kwargs)
Window.bind(按键盘上下=self.\u按键盘上下)
self.counter=1
时钟。计划一次(自我添加)
def add_stuff(self,*args):
self.textlist=[TextInput()]
self.ids.grid.add_小部件(标签(文本='%Gas{}'。格式(self.counter)))
self.counter+=1
self.ids.grid.add_小部件(self.textlist[0])
def添加输出(自身):
self.ids.grid.add_小部件(标签(文本='%Gas'+str(self.counter)))
self.counter+=1
self.textlist.append(TextInput())
self.ids.grid.add_小部件(self.textlist[-1])
键盘上的定义(自身、实例、键盘、键码、文本、修改器):
如果键盘==13:#32-按Cpace键Ascii
self.getresult()
如果键盘==9:#13-按Ascii键输入
self.addNewtPut()
b=[i.text.strip().split(“”)表示self.textlist中的i]
X=[[int(y)表示X中的y]表示b中的X]
对于范围内的i(len(X)-1):
)
如果(len(X[i])
MyMain.kv

<CustButton@Button>:
    font_size: 40


    <MainWindow>:
        spacing : 10
        name: "erst"
        grid: grid.__self__
        rows:2
        cols:1
        GridLayout:
            orientation: "horizon"
            padding: 2
            id:grid
            cols:2








    <TextInputX>
        focus: True
:
字体大小:40
:
间距:10
名称:“erst”
网格:网格__
行数:2
科尔斯:1
网格布局:
方向:“地平线”
填充:2
id:网格
科尔斯:2
焦点:正确
列表X是动态列表
如何使用flixble列和行进行动态GridLayout?

主窗口本身就是GridLayout,为什么还要在其中添加一个GridLayout? 要进行日常更改,您可以执行以下操作:

# if you are in MainWindow, which is GridLayout
self.clear_widgets()
# number of cols is length or your rows + 1 for sum
self.cols = len(X[0]) + 1
for i in range(len(X)):
    for j in X[i]:
        self.add_widget(Label(text=str(j))
    self.add_widget(Label(text=str(Sum-Rows[i][0])))

就这些。

看看GridLayout。你可以用元素的标签来填充它。谢谢你的反馈,太好了,如果它是一个动态数组,我该怎么做呢?很简单,GridLayout有cols和rows这样的参数。您可以使用元素获取列表的长度,例如更改列数或同时使用行更改列数,然后将其填入
for
循环。我在下面编写了我的代码,您可以阅读吗?如果我输入3,谢谢。Textinput,我有这个错误:raise GridLayoutException(kivy.uix.gridlayout.GridLayoutException:gridlayout中的子项太多。增加行数/列数!如何增加行数/列数!?例如,self.cols=5,或self.rows=10非常感谢,现在我尝试创建一个表,如上面的表“定义行”:第一个值| | | | | | |第二个值| | | |第三个值| | | | X值| | |求和。“定义列”:第一行| | | |第二行| | | | | | |第三行| | | | | Y行。但是我不能为第一列和第一?。
# if you are in MainWindow, which is GridLayout
self.clear_widgets()
# number of cols is length or your rows + 1 for sum
self.cols = len(X[0]) + 1
for i in range(len(X)):
    for j in X[i]:
        self.add_widget(Label(text=str(j))
    self.add_widget(Label(text=str(Sum-Rows[i][0])))