0

チェックボックス付きのQTableViewが作成されました:

 QStandardItem* checkBox = new QStandardItem(true);
 checkBox->setCheckable(true);
 checkBox->setCheckState(Qt::Unchecked);
 model->setItem(row, 0, checkBox);
ui->tableView->setModel(model);

今、チェックされたすべての行を取得したいと思います。多くのサンプルコードで見つけたように、次のようなものを書く必要があります:

 QItemSelectionModel *select = ui->tableView->selectionModel();
 QModelIndexList selectedSensosrs = select->selectedRows();
 for(int i = 0; i < selectedSensosrs.count(); i++)
 {
            //do something
  }

しかし、このコードは機能しません。いくつかのアイテムをチェックしても、カウント値はゼロです!! 私はそれを行うためのより良い方法をたくさん探しましたが、見つかりませんでした...:(

誰でも私を助けてもらえますか?

4

1 に答える 1

2

あなたの側のわずかな誤解。選択された行は、選択されたチェックボックスを含む行ではなく、強調表示された行です。残念ながら、すべてのセルを反復処理して QCheckState を照会する必要があります。

于 2013-08-13T20:51:49.287 に答える