2

私はQStandardItemModel単一の列を持つ(リストを表す)を持っています。リスト内の各項目には、QStandardItemのデータとして格納された一意の整数 ID があります (これを介して、デフォルトQStandardItem::setDataで入っていると思いQt::UserRole+1ます)。

これらの ID の 1 つを指定して、モデルから対応する行を見つけて削除したいと思います。今、私はこれをやっています:

void NetworkManager::removeSessionFromModel (QStandardItemModel *model, int sessionId) {

    foreach (const QStandardItem *item, model->findItems("*", Qt::MatchWildcard)) {
        if (item->data() == sessionId) {
            model->removeRow(item->index().row());
            break;
        }
    }

}

それは正常に動作しますが、その関数のすべての行が私をうんざりさせます。これを行うためのよりクリーンな方法はありますか?

4

3 に答える 3