Qt qtablewidget 實現篩選功能,顯示符合條件的整行資訊
阿新 • • 發佈:2018-11-14
問題:
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型別