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

问题:

     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类型

  • 29
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值