无法在 Kivy 中动态更改标签文本 Python

Not able to Dynamically Change Label text in Kivy Python

我正在尝试制作一个程序来使用 Kivy 显示 table。 这里我将 table 名称作为按钮,值由标签定义。 使用一个函数,我根据行数和列数放置标签, 然后我想使用另一个函数在外部填充它们,它会抛出一个 Index_Error。这是我的全部代码。

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.lang import Builder
from kivy.uix.scrollview import ScrollView
from kivy.core.window import Window
from kivy.uix.button import Button
from kivy.app import runTouchApp

    class TableView(GridLayout):
    Col_Names = ["Date","Vendor","Country","MOU","ASR","AOU"]
    Label_List =[]

    MyListOfElements = [['1sample1','1sample2','1sample3','1sample4','1sample5','1sample6'],
                  ['2sample1','2sample2','2sample3','2sample4','2sample5','2sample6'],
                  ['3sample1','3sample2','3sample3','3sample4','3sample5','3sample6'],
                  ['4sample1','4sample2','4sample3','4sample4','4sample5','4sample6']]

    def AddLables(self,columns, rows):
        self.LabelRow = []
        for i in range(columns):
            for j in range(rows):
                lbl = Label(size_hint_y =None, size_hint_x = None , width =30)
                self.layout.add_widget(lbl)
                self.LabelRow.append(lbl)
        self.Label_List.append(self.LabelRow)

    def AddLabel_Text(self,columns, rows):
        for i in range(columns):
            for j in range(rows):
                self.Label_List[i][j].text = self.MyListOfElements[i][j]


    def __init__(self,**kwargs):
        self.layout  = GridLayout(cols = len(self.Col_Names), padding =5)
        self.layout.bind(minimum_height=self.layout.setter('height'))
        for i in range(len(self.Col_Names)):
            btn = Button(text=self.Col_Names[i], size_hint_y=None, height=30)
            self.layout.add_widget(btn)
        self.AddLables(4,6)
        self.AddLabel_Text(4,6)

    if __name__ == '__main__':
    Table = TableView()
    runTouchApp(Table.layout)

我想要一个仅通过调用函数来更新标签名称的替代解决方案。我知道 python 中的 Labels 不能直接索引,但有没有替代解决方案?

我认为下一行应该有不同的缩进级别

self.Label_List.append(self.LabelRow)

尝试:

    for i in range(columns):
        for j in range(rows):
            lbl = Label(size_hint_y =None, size_hint_x = None , width =30)
            self.layout.add_widget(lbl)
            self.LabelRow.append(lbl)
            #lbl.text = self.MyListOfElements[i][j]
   #--->Now it's inside the first loop!
        self.Label_List.append(self.LabelRow)

现在您将拥有足够的行,这样 AddLabel_Text 就不会失败