前言
在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);
}
}