【发布时间】:2020-09-21 17:35:58
【问题描述】:
我的程序从 mariadb 数据库获取数据,我想在创建为 MDDataTabl 类实例的表中显示从数据库获取的内容。我读到我可以将数据作为列表列表传递给类。
from kivymd.app import MDApp
from kivymd.uix.datatables import MDDataTable
from kivy.metrics import dp
import datetime
dataforrows=[]
dataofrow=[]
# cur is where the elements from the database query are stored in.
for (Field1,Field2,Field3) in cur:
dataforrows.append(Field1)
dataforrows.append(Field2)
dataforrows.append(Field3)
temprow=dataforrows.copy()
dataofrow.append(temprow)
dataforrows.clear()
print(dataofrow)
我的列表的构造按预期工作,正如 CLI 的 print(dataofrow) 的输出所示:
[['01', '2-2', datetime.date(2020, 2, 28)],
['02', '1-1', datetime.date(2020, 2, 28)],
['03', '1-8', datetime.date(2020, 2, 28)],
['07', '1-3', datetime.date(2020, 2, 28)],
['11', '1-4', datetime.date(2020, 2, 28)],
['06', '', datetime.date(2020, 2, 28)],
['10', '1-8', datetime.date(2020, 2, 28)],
['05', '2-1', datetime.date(2020, 3, 3)],
['09', '', datetime.date(2020, 3, 6)],
['08', '1-3', datetime.date(2020, 3, 6)],
['04', '', datetime.date(2020, 3, 6)]]
当我尝试用dataofrow 填充表格时出现问题。仅显示 5 个项目,并且没有可见的滚动条。这是创建表的 sn-p:
table = MDDataTable(pos_hint={'center_x': 0.5, 'center_y':0.5},
column_data=[
("Field1", dp(30)),
("Field2", dp(30)),
("Field3", dp(30))
],
row_data=dataofrow
)
即使手动将输出粘贴到源代码中,也只会显示前 5 行。同样用一些东西填充空的'' 对视觉输出没有影响。
我在这里错过了什么?
【问题讨论】: