我正在Python/PyQt5中开发一个小型搜索应用程序,该应用程序插入远程SQL数据库,将结果发送到本地数据库文件,然后将数据库文件中的行输出到QTableWidget对象。该应用程序运行,创建本地数据库文件,但QTableWidget对象中没有显示任何内容。我单独测试了将行插入QTableWidget的代码部分,它确实有效。所以我不太确定下一步该找什么。PS。我知道整体设计很麻烦,但我是Python的新手,这是我能想到的最好的。
诚然,我对QT没有太多经验,但以下是我如何填充QTableWidget
:
(我已经根据你的例子调整了我的代码(
我使用QT设计器构建一个表单,该表单包含一个包含4列的QTableWidget
:然后我像这样一行一行地添加:
# add row
row_num = db_local_tableWidget.rowCount()
db_local_tableWidget.insertRow(row_num)
db_local_tableWidget.setItem(row_num , 0, QTableWidgetItem(value1))
db_local_tableWidget.setItem(row_num , 1, QTableWidgetItem(value2))
db_local_tableWidget.setItem(row_num , 2, QTableWidgetItem(value3))
db_local_tableWidget.setItem(row_num , 3, QTableWidgetItem(value4))
db_local_tableWidget.resizeColumnsToContents()
我认为你不应该这样做:
db_local_tableWidget.setRowCount(200)
db_local_tableWidget.setColumnCount(6)
如果你事先不知道你会得到多少排,这没关系。只需在阅读数据时添加它们。
我还没有检查其余的代码,但您应该添加一些调试输出,要么记录到控制台,要么使用logger
类记录到文件中。首先,请确保您的双for loop
代码确实得到了执行,并且值、偏移量等都是正确的。你应该能够很容易地弄清楚。如果代码按预期运行,但网格没有更新,这是另一个问题。