Russian Qt Forum

Qt => Базы данных => Тема начата: str-ms от Апрель 15, 2017, 16:21



Название: QSqlTableModel + QTreeView - что нового?
Отправлено: str-ms от Апрель 15, 2017, 16:21
Привет!
Разбираюсь в Qt под Питоном, добрался до необходимости хранения и отображения иерархических данных в БД. Целый день читаю информацию по реализации связки модели QSqlTableModel с вьюшкой QTreeView. Обратил внимание на то, что все посты о реализации вариантов SQLTreeModel достаточно древние, ещё времён Qt 4.8. Возник вопрос, а не появилось ли в современной версии Qt решения этой проблемы от самих разработчиков? Как сейчас решается вопрос связки QSqlTableModel + QTreeView? Не упускаю ли я какое-то очевидное решение?


Название: Re: QSqlTableModel + QTreeView - что нового?
Отправлено: titan83 от Апрель 15, 2017, 18:33
Не упускаешь ничего.
Все то же: data(), setData(), flags() и QModelIndex.
В принципе, меня эта система устраивает, единственное, что я бы добавил - это возможность использовать строку вместо enum для указания роли.
Хотя я сейчас делаю в основном так:
Код:
QWshWorksheetCell* cell = data(index, Qt::UserRole).value<QWshWorksheetCell*>();
И дальше в коде (будь то делегат или же в модели) работаю уже напрямую с объектом, поэтому 100500 разных ролей уже не использую (только UserRole, EditRole и UserRole как раз для указателя на объект).