oleja1ee7
@oleja1ee7

Почему ASSERT: «!isEmpty()»?

при выделении строки в tableview код работает, удаление происходит.
а при выделении одной ячейки выбивает ошибку :
ASSERT: "!isEmpty()" in file C:/Qt/5.8/mingw53_32/include/QtCore/qlist.h, line 344

эта строчка:
inline T& first() { Q_ASSERT(!isEmpty()); return *begin(); }

код участка, где проверка на выделение стоит:
QSqlQueryModel *setquery1 = new QSqlQueryModel;
    QSqlTableModel *model = new QSqlTableModel;
    QItemSelectionModel *selectModel = ui->tableView->selectionModel();
    if (selectModel->hasSelection())
    {
       int nr = selectModel->selectedRows().first().row();
       ui->dir_excel->setText(ui->tableView->model()->data(ui->tableView->model()->index(nr,0)).toString());
       if (QMessageBox::Yes == QMessageBox::question(this, "Удалить?",
                             "Уверены?",
                             QMessageBox::Yes|QMessageBox::No))
       {
            ui->dir_excel->setText(ui->tableView->model()->data(ui->tableView->model()->index(nr,0)).toString());
            QString indid = ui->tableView->model()->data(ui->tableView->model()->index(nr,0)).toString();
            setquery1->setQuery("DELETE FROM ships WHERE id="+indid+";");
            model->setTable("ships");
            model->select();
            ui->tableView->setModel(model);
}
}
  • Вопрос задан
  • 496 просмотров
Решения вопроса 1
IGHOR
@IGHOR Куратор тега Qt
Qt/C++ DEV/CTO
А вывести selectModel->selectedRows().count() что там?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы