亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 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 關注
  • 324 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號