我正在使用Qt 5.4.0并创建了一个QTableWidget。该表有几行和几列。
在我的应用程序中,我想搜索该表中的字符串,如果该字符串存在,我想知道行号。
我在qt 5.4.0文档中找不到任何这样的api。
有没有人理解这种api或类似于我正在寻找的东西。
提前致谢!
答案 0 :(得分:2)
您可以使用模型的match()
方法:
for (int col=0; col<tableWidget->columnCount(); col++){
// return a list of all matching results
QModelIndexList results = tableWidget->model()->match(
tableWidget->model()->index(0, col),
Qt::DisplayRole,
"yourstring",
-1,
Qt::MatchContains
);
// for each result, print the line number
for (QModelIndex idx : results)
qDebug() << idx.row();
}
答案 1 :(得分:1)
您可以使用findItems method:
QString searchtext = "text";
QList<QTableWidgetItem *> items = ui->tableWidget->findItems(searchtext, Qt::MatchExactly);
for(int i=0; i<items.count(); i++)
{
int row = items.at(i)->row();
//...
}
请注意,您可以将额外参数传递给findItems
,以设置一个或多个match flags。