PyQt5:从sqlite3数据库中填充QTableWidget



我正在编写一个关于杂货店产品管理的程序。我使用PyQt5为我的程序制作GUI,我有一个按钮负责列出数据库中的所有数据,还有一个QTableWidget负责保存数据。当我点击该按钮时,它需要将数据库中的数据放入QTableWidget,但对我来说什么都没有。我无法发布我程序的所有部分,因为我程序的代码太长了。我将只发布必需的部分。

这是代码:

def ListProducts(self):
self.curs.execute("SELECT * FROM Products")
self.conn.commit()
self.ui2.ProductTable.clear()
for lineIndex, lineData in enumerate(self.curs):
for columnIndex, columnData in enumerate(lineData):
self.ui2.ProductTable.setItem(lineIndex, columnIndex,QtWidgets.QTableWidgetItem(str(columnData)))

默认情况下,QTableWidget没有大小,因此在设置新项之前必须定义其行数和列数。在您的情况下,计数最初是未知的,因为它们是由sqlite select语句确定的,但在添加数据时可以动态调整表的大小:

def ListProducts(self):
self.curs.execute("SELECT * FROM Products")
self.ui2.ProductTable.clear()
for lineIndex, lineData in enumerate(self.curs):
if lineIndex == 0:
# SET COLUMN COUNT
self.ui2.ProductTable.setColumnCount(len(lineData))
# ADD NEW ROW
self.ui2.ProductTable.insertRow(lineIndex)
for columnIndex, columnData in enumerate(lineData):
# FILL ROW
self.ui2.ProductTable.setItem(lineIndex, columnIndex, QtWidgets.QTableWidgetItem(str(columnData)))

最新更新