首页 > 解决方案 > 将 SQLite 表中的数据加载到 PyQt5 tableWidget 中

问题描述

我试图让 PYQT5 tableWidget 使用组合框中的 currentText 中的 SQL Select 语句加载,但是当它运行时它不会出现任何错误,但也不能正确运行。请问有人可以建议吗?

我尝试在没有组合框的情况下向后工作,但它没有正确加载到 tableWidget 中,它被转移并且没有加载所有代码。

我相信这与 SQL 语句有关,但我可能是错的。

   #Sets the column width of the tablewidget
    self.grouptable.setColumnWidth(0, 100)
    self.grouptable.setColumnWidth(1, 150)
    self.grouptable.setColumnWidth(2, 150)
    self.grouptable.setColumnWidth(3, 150)
    self.grouptable.setColumnWidth(4, 150)
    self.grouptable.setColumnWidth(5, 150)
    self.grouptable.setColumnWidth(6, 150)
    self.grouptable.setColumnWidth(7, 150)

    #Sets the horizontal header labels of the tablewidget
    self.grouptable.setHorizontalHeaderLabels(["Order of CB","Group Name","Recent CB","Date of CB","views24","Current_Views","Current_Wins","Overall_Wins","Group_Information"])

    selectedContent = self.groupnamebox.currentText()
    print (selectedContent)

#Defines loadData Subroutine
def loadData(self, selectedContent):
    
    selectedContent = self.groupnamebox.currentText()
    print (selectedContent)
    groupname = selectedContent
    print(groupname)
#SQL QUERY - Select ALL from group table Limiting results at 50
    tablesConnect.execute("SELECT * FROM grouptable WHERE Group_Name = ? ", (groupname, ))
    rows = tablesConnect.fetchall()
    print(rows)
    
    self.grouptable.setColumnCount(8)
    self.grouptable.setRowCount(50)
    tablerow = 0 #Sets start count to 0

    #FOR LOOP - For row in SQL input results
    for row in rows:
        self.grouptable.setItem(tablerow, 0, QtWidgets.QTableWidgetItem(row[0]))
        self.grouptable.setItem(tablerow, 1, QtWidgets.QTableWidgetItem(row[1]))
        self.grouptable.setItem(tablerow, 2, QtWidgets.QTableWidgetItem(row[2]))
        self.grouptable.setItem(tablerow, 3, QtWidgets.QTableWidgetItem(row[3]))
        self.grouptable.setItem(tablerow, 4, QtWidgets.QTableWidgetItem(row[4]))
        self.grouptable.setItem(tablerow, 5, QtWidgets.QTableWidgetItem(row[5]))
        self.grouptable.setItem(tablerow, 6, QtWidgets.QTableWidgetItem(row[6]))
        self.grouptable.setItem(tablerow, 7, QtWidgets.QTableWidgetItem(row[7]))
        tablerow+=1 #For each row add 1

标签: pythonsqlsqlitepyqtpyqt5

解决方案


推荐阅读