QtableWidget:如何在特定列中查找值

4

我需要使用 qtablewidget 检查特定列中是否存在特定值。在我的情况下,我需要检查第一列是否已经存在 ID,如果是,我需要获取包含该 ID 的行数以更新该行,否则我想添加新行。 QT 是否提供了检查列的解决方案,或者应该如何实现?


请问您能否更多地介绍一下QTableWidget的底层模型?例如,您是否使用了自定义模型类?这有助于针对您特定的用例提供更准确的答案。 - Matthew
我只是使用标准小部件。我在QT和C++方面只是一个初学者,所以也许我没有正确理解问题。 - Karl Adler
@Matthew QTableWidget 有自己的模型。 - Martin Hennings
1个回答

8
我假设您正在查找第一列中的值(因此item(int,int)的第二个参数是0),表格名称为myQTableWidget。
int rows = myQTableWidget->rowCount();
bool found = false;
for(int i = 0; i < rows; ++i)
{
    if(myQTableWidget->item(i, 0)->text() == "Something")
    {
        //we have found our value so we can update 'i' row
        found = true;
        break;
    }
}
if(!found)
{
    //we didn't find our value, so we can insert row
}

当然,这会起作用...但不是搜索的最优版本。有更好的想法吗? - swdev
@swdev 为了优化这个问题,首先使用 QTableView 和自己的 QTableModel - Martin Hennings
你也可以使用 QTableWidget::findItems:https://doc.qt.io/qt-6/qtablewidget.html#findItems - Chidi Williams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接