QTableView не становится в редактирование
Привет. Есть таблица наследник от QTableView, модель от QAbstractItemModel, делегат от QStyledItemDelegate, модель фильтрации от QSortFilterProxyModel.
_userModel->getAllUsers(); _filterModel->setSourceModel(_userModel); ui->_usersTV->setModel(_filterModel); ui->_usersTV->setItemDelegate(_userDelegate); ui->_usersTV->setSelectionMode(QAbstractItemView::SingleSelection); ui->_usersTV->setEditTriggers(QAbstractItemView::AllEditTriggers); ui->_usersTV->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeMode::ResizeToContents); ui->_usersTV->horizontalHeader()->setStretchLastSection(true);
Почему ячейки в такой таблице не ставятся в редактирование при любых действиях (дв клик, ентер и пр.)?
что еще тут не работает тоже не понятно почему -
connect(ui->_userTV->selectionModel(), &QItemSelectionModel::selectionChanged, this, &UserEditForm::foo);
Сигнал при смене выделенной ячейки не испускается.
Я пробовал убрать делегат и модель фильтрации, оставил только вью и модель, но это не помогло.
при использовании обычной QTableView всё также. Что за бред... что-то в модели должно быть, что стало возможно редактирование ячейки?
Поставил в модели для теста:
QVariant UserNode::data(const int column, const int role) const { switch (role) { case Qt::EditRole: { User* entity = item().value<User*>(); switch (column) { case User::SECONDNAME: return entity->secondName(); break; } } } return TreeNode::data(column, role); }
в этот кейс редактирования вообще не заходит. Значит, дело всё же во вью...
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.Magst du es? In sozialen Netzwerken teilen!
Kommentare
- sdfsdfkp fgskpgokspdog
- 14. Oktober 2024 15:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Ergebnis:90punkte,
- Bewertungspunkte8
- Максим Васильев
- 2. Oktober 2024 04:14
Qt - Тест 001. Сигналы и слоты
- Ergebnis:68punkte,
- Bewertungspunkte-1
- Лев Семенов
- 30. September 2024 11:04
C++ - Тест 001. Первая программа и типы данных
- Ergebnis:53punkte,
- Bewertungspunkte-4
QSortFilterProxyModel - только сортирует данные, но не позволяет вам их изменять. Если вам необходимо сортировка данных, и при этом возможность редактирования данных, то оперируйте данными в QAbstractItemModel.
QSortFilterProxyModel
данные меняются в основной модели при использовании QSortFilterProxyModel, есть делегат к тому же, в котором переопределен setModelData. Я же отписался - пробовал и без модели фильтрации, и без делегата, всё равно в редактирование таблица не ставилась.
Можете показать код где Вы инициализируете QAbstractItemModel? И как он потом наследуется.
балин, вот я, конечно, "молодец". минус 5 часов, из-за того, что не поставил в модели флаги.
почему-то всегда думал, что они нужны только для SqlModels.
Спасибо за участие!