gpt4 book ai didi

python - 将数据从 Sqlite3 数据库插入到 QTableWidget 中

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:20 25 4
gpt4 key购买 nike

我正在为我们的测试平台构建一个 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]))

这会导致从 self.tblTests.setItem(row, column, QtWidgets.QTableWidgetItem(rows[row][column])) 返回 None

我也尝试过以下方法

    for row, key in enumerate(rows):
for column, data in enumerate(rows[row]):
self.tblTests.setItem(row, column, QtWidgets.QTableWidgetItem(str(data)))

在这种情况下,data 返回

1
Login
1
test_login_s
2
Logout
1
test_logout_s
3
User > Edit
1
test_user_edit_s

这似乎是在正确的轨道上。然而,它仍然没有填充tblTests

最佳答案

在尝试调试上述代码并看到 data 返回值后,我认为一定有问题。

查看setupUI()函数后,我发现了self.tblTests.setColumnCount(0)行。最初,我认为由于 setItem() 调用,这一行是多余的,但为了调试,我决定将其保留在代码中。

我在黑暗中尝试了一下,并将 self.tblTests.setColumnCount(0) 设置为 4,现在它按预期工作了。

我在文档中没有看到任何内容表明在阅读文档时需要手动输入 setColumnCount

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

关于python - 将数据从 Sqlite3 数据库插入到 QTableWidget 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54590572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com