QT QTableView получить проверенные элементы

У меня 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
  }

Но этот код не работает, значение счетчика равно нулю, даже если я проверил несколько пунктов! Я много искал лучшего способа узнать, но не нашел...:(

Кто-нибудь может мне помочь, пожалуйста!

1 ответ

Решение

Небольшое заблуждение на вашей стороне. Выбранные строки - это не строка, которая содержит выбранный флажок, а строка, которая выделена. Я боюсь, что вы должны пройти через все ваши ячейки и запросить QCheckState.

Другие вопросы по тегам