python - SQLite 和 tableWidget

标签 python sqlite pyqt qtablewidget

如何使 QTableWidget 中的 headers 在调用 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()

最佳答案

您可以使用 cursor.description 获取列的名称。 :

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)

关于python - SQLite 和 tableWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58981441/

相关文章:

javascript - 如何使用ng-repeat angularjs ionic将sqlite中的数据显示到列表中

python - 加载大文件时显示 python 的 XML 解析器的进度

python - 如何使用 Django ORM 计算从出生年份到注册日期的用户年龄

使用 Py_SetPath() 和 Py_GetPath() 后的 Python C API free() 错误

MySQL 数据库规范化

sql - 使用 Node.JS 更新 SQL (better-sqlite3) 中的值

python - 扩展 QSpinBox ContextMenu

qt - 在 QT 中关闭窗口之前获取应用程序退出信号

python - 类型错误 : unsupported operand type(s) for -: 'str' and 'str' Simpleton

python - 为什么我的正则表达式找不到名称?