我正在为我们的测试平台构建 GUI 已被指示用户应该能够从表中选择要运行的测试。我在将数据放入表本身时遇到问题。我可以很好地获取数据,但无法填充QTableWidget这是我尝试填充表格的数据示例Id | Test name | Owner | Script source---|----------- |-------|-------------- 1 | Login | 1 | test_login_s 2 | Logout | 1 | test_logout_s 3 | User > Edit | 1 | test_user_edit_s最初,我尝试使用该sqlite3包来实现此任务,但阅读使我找到了该QtSQL包,它似乎更易于与给定的任务一起使用。这是我使用QtSQL.def load_data(self): connection = sqlite3.connect('data.db') cursor = connection.cursor() cursor.execute('''SELECT * FROM Tests''') rows = cursor.fetchall() for row in range(len(rows)): for column in range(len(rows[row])): self.tblTests.setItem(row, column, QtWidgets.QTableWidgetItem(rows[row][column]))这reults中None被返回self.tblTests.setItem(row, column, QtWidgets.QTableWidgetItem(rows[row][column]))。我也尝试过以下方法 for row, key in enumerate(rows): for column, data in enumerate(rows[row]): self.tblTests.setItem(row, column, QtWidgets.QTableWidgetItem(str(data)))在这种情况下,data返回1Login1test_login_s2Logout1test_logout_s3User > Edit1test_user_edit_s这似乎是在正确的轨道上。然而,它仍然没有填充tblTests
1 回答

慕娘9325324
TA贡献1783条经验 获得超4个赞
在尝试调试上面的代码并看到data
返回的值后,我认为一定有什么问题。
在浏览了这个setupUI()
函数之后,我遇到了这条线self.tblTests.setColumnCount(0)
。一开始,我认为由于setItem()
调用,这行代码是多余的,但为了调试,我决定将其保留在代码中。
我在黑暗中试了一下,设置self.tblTests.setColumnCount(0)
为 4,现在它按预期工作了。
我在文档中没有看到任何建议setColumnCount
在阅读文档时需要手动输入的内容。
希望这对其他人也有帮助!
添加回答
举报
0/150
提交
取消