Случайно во время написания кода часть кода, содержащая "model()" в ui->tableView->model()->..., перестала работать. Хотя всего 5 минут назад проект компилировался успешно. Также во всех моих предыдущих проектах (я их никак не трогал и успешно запустил вчера), которые использовали "model()" где угодно по отношению к QTableView в коде, отладчик также начинал показывать ту же ошибку
Сообщение об ошибке: In member function 'void menu::on_pbDelete_clicked()':
95:48: error: 'class QTableView' has no member named 'model'
QString id = ui->tableView->model()->data(ui->tableView->model()->index(selectedIndexes.first().row(), 0)).toString();
Ошибка возникает здесь (и во всех остальных случаях использования "model()")QString id = ui->tableView->model()->...
________________________________^~~~~
Для понимания QModelIndexList selectedIndexes = ui->tableView->selectionModel()->selectedIndexes();
Вы должны предоставить минимальный, воспроизводимый пример вашей проблемы И включить сообщения об ошибках, которые вы получаете, дословно :)
Я ожидаю, что вы пропали #include <QTableView>
или каким-то образом перезаписали этот файл или повредили заголовки Qt.
@drescherjm Я добавил #include <QTableView>
, но ничего не изменилось. «или каким-то образом вы перезаписали этот файл или повредили заголовки Qt». Как я могу это проверить?
Это зависит от того, как вы установили Qt. если Qt в вашей ОС легко переустановить или восстановить, попробуйте это.
Я решил проблему, попросив друга ввести ui->tableView->model()
в его QT, нажать Ctrl+LMB
на model()
и показать мне скриншот. Оказалось, что в qabstractitemview.h
(Ctrl+K qabstractitemview.h
) вместо virtual void setModel(QAbstractItemModel *model)
мне однажды удалось ввести лишний символ, который испортил всю функцию.
Пожалуйста, отредактируйте свой вопрос, чтобы показать соответствующий код — желательно в форме минимально воспроизводимого примера.