c-查找包含值的单元格的索引并在QTableView中突出显示所有这些单元格

我们如何使用QT c在QTableView中找出包含QString的单元格的索引(即行号和列号)?

(注:无需单击qtableview中的单元格)

解决方法:

您可以使用findItems()函数查找您的单元格.

findItems()函数使用给定的标志在给定的列中返回与给定文本匹配的项的列表.

for (int index = 0; index < model->columnCount(); index++)
{
    QList<QStandardItem*> foundLst = model->findItems("YourText", Qt::MatchExactly, index);
}

如果要获取找到的项目的索引并突出显示它,请使用以下代码:

for (int index = 0; index < model->columnCount(); index++)
{
    QList<QStandardItem*> foundLst = model->findItems("YourText", Qt::MatchExactly, index); 
    int count = foundLst.count();
    if(count>0)
    {
            for(int k=0; k<count; k++)
            {
                 QModelIndex modelIndex = model->indexFromItem(foundLst[k]);
                 qDebug()<< "column= " << index << "row=" << modelIndex.row();
                ((QStandardItemModel*)modelIndex.model())->item(modelIndex.row(),index)->setData(QBrush(Qt::green),Qt::BackgroundRole);
            }
    }
}

更多信息:

QTableView:QTableView类提供了表视图的默认模型/视图实现.

QStandardItemModel:QStandardItemModel类提供了用于存储自定义数据的通用模型.

上一篇:第15.24节 PyQt(Python+Qt)入门学习:Model/View架构中QTableView的作用及属性详解


下一篇:修改QTableView PYQT5中的单元格