QTableWidget 搜索实现

文章目录[隐藏]

前言

Qt开发使用QTableWidget时,经常会遇到搜索表格中的信息。要实现:当用户在编辑框输入任意字符时, QTableWidget会根据编辑框的内容检索。此文主要就是实现此功能。

功能实现

添加一个 QLineEdit, 连接它的 textChanged 事件,在 textChanged 槽函数中编写方法,方法内容如下。
ui->tbWgtRelation->setRowHidden(i, bRowHidden); // 核心代码: 此方式是设置行隐藏和显示具体根据第二个参数

void RelationPageMain::tbSearchByText(QString text)
{
    QList<QTableWidgetItem*> findItems = ui->tbWgtRelation->findItems(text, Qt::MatchContains);

    int nRow = ui->tbWgtRelation->rowCount();
    bool bRowHidden = true;
    for(int i = 0; i < nRow; ++i)
    {
        bRowHidden = true;
        foreach(QTableWidgetItem* item, findItems)
        {
            if(NULL == item) continue;
            if(ui->tbWgtRelation->row(item) == i)
            {
                bRowHidden = false;
                break;
            }
       }
       ui->tbWgtRelation->setRowHidden(i, bRowHidden);
    }
}
posted @ 2020-05-26 12:17  不随。  阅读(113)  评论(0编辑  收藏  举报  来源