为了账号安全,请及时绑定邮箱和手机立即绑定

将 SqlLite3 数据库中的数据插入 QTableWidget

将 SqlLite3 数据库中的数据插入 QTableWidget

慕的地8271018 2021-11-02 16:56:11
我正在为我们的测试平台构建 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在阅读文档时需要手动输入的内容。

希望这对其他人也有帮助!


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 298 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号