是否可以使用 QSqlTableModel 为 Qtableview 创建行过滤器。我正在唱“QSqlTableModel”来显示来自正在工作的 SQLite 的 Qtableview 上的数据。但我正在尝试过滤行。当我执行代码时,我遇到的错误是
第 44 行,在 for row in range(self.model.rowCount()) AttributeError: 'QSqlTableModel' object has no attribute 'item'
我试过但没有得到任何解决方案。可以用 QSqlTableModel 来实现吗?当我点击 Qtableview 的任何列时,我想显示来自 tableview 的过滤项目。我将 Qtableview 与 QSqlTableModel 一起使用。
我想做的就像图片中显示的那样
from PyQt5 import QtCore, QtGui, QtWidgets, QtSql
from PyQt5.QtSql import *
class myWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(myWindow, self).__init__(parent)
self.centralwidget = QtWidgets.QWidget(self)
self.view = QtWidgets.QTableView(self.centralwidget)
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.addWidget(self.view, 1, 0, 1, 3)
self.setCentralWidget(self.centralwidget)
# self.model = QtGui.QStandardItemModel(self)
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("model.db")
db.open()
self.model = QSqlTableModel(self)
self.model.setTable("sheet")
self.model.select()
self.view.setModel(self.model)
self.proxy = QtCore.QSortFilterProxyModel(self)
self.proxy.setSourceModel(self.model)
self.view.setModel(self.proxy)
self.horizontalHeader = self.view.horizontalHeader()
self.horizontalHeader.sectionClicked.connect(self.on_view_horizontalHeader_sectionClicked)
慕后森
相关分类