QAbstractItemView, или внутренности Qt |
Здравствуйте, гость ( Вход | Регистрация )
QAbstractItemView, или внутренности Qt |
Litkevich Yuriy |
8.2.2009, 16:19
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
В классе QAbstractItemView есть метод setModel(QAbstractItemModel *model)
Цитата /*! Sets the \a model for the view to present. \bold{Note:} This function will also create and set a new selection model, replacing any previously set with setSelectionModel(), but the old selection model will not be deleted. \sa selectionModel(), setSelectionModel() */ и подтверждение сказаному:
Для меня остается загадкой: 1) либо почему старая не удаляется? 2) либо почему старая не используется? В примере %QTDIR%\demos\sqlbrowser при выполнении запроса устанавливается для табличного представления QSqlQueryModel, а при просмотре таблицы, для этого же представления, устанавливается QSqlTableModel. Человек реально много раз может переключаться с одной работы на другую. Тем самым модели выделения будут создаваться вновь и вновь. Как-то странно это все. |
|
|
wiz29 |
2.8.2011, 15:43
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
разница именно в моменте удалении непосредственно самого объекта, в случае оператора delete объект будет удален сразу, в случае удаления посредством вызова deleteLater объект удалится, в момент передачи управления основному циклу обработки сообщений приложения, т.е. при таком вызове указатель на объект как правило еще валиден в рамках вызывающего участка кода. Что лучше использовать уже дело вкуса, если вариант с вызовом delete решает нужную задачу, то я выберу его.
|
|
|
Текстовая версия | Сейчас: 2.12.2024, 18:29 |