Python SQLite和tableWidget

Python SQLite和tableWidget,python,sqlite,pyqt,qtablewidget,Python,Sqlite,Pyqt,Qtablewidget,如何使QTableWidget中的标题在调用loadData后也更新 def loadData(self): connection = sqlite3.connect('CUSP.db') query = "SELECT * FROM ZAYAVITEL" result = connection.execute(query) self.tableWidget.setColumnCount(6) for row_number, row_data in enu

如何使QTableWidget中的标题在调用loadData后也更新

def loadData(self):
    connection = sqlite3.connect('CUSP.db')
    query = "SELECT * FROM ZAYAVITEL"
    result = connection.execute(query)
    self.tableWidget.setColumnCount(6)
    for row_number, row_data in enumerate(result):
        self.tableWidget.insertRow(row_number)
        for column_number, data in enumerate(row_data):
            self.tableWidget.setItem(row_number, column_number, QtWidgets.QTableWidgetItem(str(data)))
    connection.close()

您可以使用以下命令获取列的名称:


欢迎来到stackoverflow!你能提供更多关于你的问题的信息吗?你想要达到的目标是什么?你试了什么?到目前为止,您发现了哪些问题?通过编辑您的问题,您可以随意添加这些信息。谢谢,它很有效。但是如何确保每次新行没有添加到以前的行中,而表只是更新值?@RoyalGoose如果您意识到我使用了“clear()”来清理以前的数据并放置新信息。我注意到,但出于某种原因,每次调用此函数后,另外,我还有两行空行我理解这个问题,.clear()函数只从相应的单元格中删除数据,但在操作之前必须完全清除整个tableWidget,即和行和列
def loadData(self):
    self.tableWidget.setColumnCount(0)
    self.tableWidget.setRowCount(0)

    connection = sqlite3.connect("CUSP.db")
    cursor = connection.execute("SELECT * FROM ZAYAVITEL")
    # https://stackoverflow.com/a/7831685/6622587
    names = [description[0] for description in cursor.description]
    self.tableWidget.setColumnCount(len(names))
    self.tableWidget.setHorizontalHeaderLabels(names)

    for i, row_data in enumerate(cursor):
        self.tableWidget.insertRow(i)
        for j, value in enumerate(row_data):
            it = QtWidgets.QTableWidgetItem()
            it.setData(QtCore.Qt.DisplayRole, value)
            self.tableWidget.setItem(i, j, it)