Qt qtablewidget 实现筛选功能,显示符合条件的整行信息

    xiaoxiao2021-03-25  109

    问题:

         1、有输入的时候显示符合条件的整行信息

         2、没有输入的时候显示所有信息

    过程:

         查询到官方提供了QTableWidget类的

              QList<QTableWidgetItem*> QTableWidget::findItems(constQString&text,Qt::MatchFlagsflags) const

              voidQTableView::setRowHidden(introw,bool hide)

     

    第一次思路:

         1、通过findItems输出符合条件的行号

         2、将符合条件行显示

    第二次思路:

         1、判断输入是否为空?全部显示(结束):进一步判断  

         2、获取符合条件的行号

         3、隐藏所有行

         4、判断行号是否为空?(是,结束操作):否,显示相关行(结束)

     

    void MainWindow::ScreenInfo(QTableWidget *source, QString &text) { int rC = source->rowCount();//获得行数 if ("" == text) {//判断输入是否为空 for (int i = 0; i < rC; i++) { source->setRowHidden(i, false);//显示所有行 } } else { //获取符合条件的cell索引 QList <QTableWidgetItem *> item = source->findItems(text, Qt::MatchContains); for (int i = 0; i < rC; i++) { source->setRowHidden(i, true);//隐藏所有行 } if (!item.isEmpty()) { //不为空 for (int i = 0; i < item.count(); i++) { source->setRowHidden(item.at(i)->row(),false);//item.at(i).row()输出行号 } } } }

     

    附match类型

    转载请注明原文地址: https://ju.6miu.com/read-17473.html

    最新回复(0)