小编Rig*_*gel的帖子

PyQt - QTableView 通过隐藏行搜索

这是我的问题。我有一个 QTableView 显示一些数据(在模型中设置)和一个 QLineEdit 小部件,我想用它来搜索所有显示行中的文本。预期的行为应该是:我在 QLineEdit 中键入一些文本,并且 QTableView 更新本身隐藏了所有不包含该数据的行。

问题是,我应该如何实施?我发现一个名为 hideRows() 的 QTableView 成员函数似乎是正确的选择,但我不知道我应该如何遍历所有数据以及将该方法放在哪里。它应该包含在模型还是对话框中?(这实际上是我第一次使用模型,所以我只是掌握了它们的工作原理)

另外,我需要实现一个导出功能(csv、html 或其他),但只使用当前显示的行(那些没有隐藏的行)。这可能吗?

谢谢你的任何建议。

这是我的代码,直到现在:

from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
import Android_extractor
import ui_android_dialog



class recordsTableModel(QAbstractTableModel):

    def __init__(self, records, parent = None):
        QAbstractTableModel.__init__(self, parent)
        self.__records = records

    def rowCount(self, parent):
        return len(self.__records)

    def columnCount(self, parent):
        return len(self.__records[0])

    def flags(self, index):
        return Qt.ItemIsEnabled | Qt.ItemIsSelectable

    def data(self, index, role):
        if role == Qt.EditRole:
            row = index.row()
            column = index.column()
            return self.__colors[row][column].name()

        if role …
Run Code Online (Sandbox Code Playgroud)

python qt pyqt filter

3
推荐指数
1
解决办法
2869
查看次数

标签 统计

filter ×1

pyqt ×1

python ×1

qt ×1