我正在尝试使用QSortFilterProxyModel根据QLineEdit中的文本过滤QTableView。它正在工作,尽管不正确-它不显示“完全匹配”的项目。举个例子可以更好地说明我的意思。
示例:在QLineEdit中键入" 22“将显示第一列中包含"22”的行,但不会显示列等于22的行。将显示"229“,将显示"2224”,但不显示"22“
下面是我的代码的精简版本
self.model = QSqlTableModel()
self.model.setTable("products")
self.model.select()
self.proxy = QSortFilterProxyModel()
self.proxy.setSourceModel(self.model)
self.proxy.setFilterKeyColumn(0)
self.ui.table_products.setModel(self.proxy)
self.ui.line_input.textChanged.connect(self._filter_products)
def _filter_products(self, text):
search = QRegExp(
text,
Qt.CaseInsensitive,
QRegExp.RegExp
)
self.proxy.setFilterRegExp(search)
发布于 2017-08-16 20:33:00
在我看来,您正在筛选第0列...
self.proxy.setFilterKeyColumn(0)
...and该列中只有1行和22行。
https://stackoverflow.com/questions/43700494
复制相似问题