Здравствуйте, гость ( Вход | Регистрация )
|
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. Человек реально много раз может переключаться с одной работы на другую. Тем самым модели выделения будут создаваться вновь и вновь. Как-то странно это все. |
|
|
|
![]() |
| Гость_Константин_* |
9.2.2009, 10:16
Сообщение
#2
|
|
Гости |
страшного ничего в этом нет. просто на момент установки новой модели "старая" селекшн-модель может ещё использоваться и, поскольку мы не хотим сегфолта, модель не удаляем (подобное часто встречается в сорцах кутэ) - на мой взгляд это лучше, чем пол-дюжины проверок в каждом методе (привет, гтк)!
если нужно часто "передёргивать" модель-источник и программист твёрдо уверен, что селекшн-модель в момент установки модели-источника нигде не используется, программист может смело делать так:
|
|
|
|
Litkevich Yuriy QAbstractItemView, или внутренности Qt 8.2.2009, 16:19
SABROG Я мало что понял. Вопрос заключается в том почему ... 8.2.2009, 17:26
Litkevich Yuriy Цитата(SABROG @ 8.2.2009, 20:26) старая э... 8.2.2009, 17:42
SABROG Кстати интересно. Написано, что setModel каждый ра... 8.2.2009, 18:17
Litkevich Yuriy Цитата(SABROG @ 8.2.2009, 21:17) т.е. ста... 8.2.2009, 18:27
SABROG В 4.4.3 ситуация таже. Все экземпляры QItemSelecti... 8.2.2009, 19:31
SABROG Интересно почему Qt сама не делает deleteLater(). ... 9.2.2009, 11:39
Litkevich Yuriy Цитата(SABROG @ 9.2.2009, 14:39) Интересн... 9.2.2009, 12:02
SABROG Цитата(Litkevich Yuriy @ 9.2.2009, 11:59)... 9.2.2009, 12:10
Константин Цитата(SABROG @ 9.2.2009, 12:10) Цитата(L... 9.2.2009, 12:44
Litkevich Yuriy я думаю, что можно было бы продолжить использовать... 9.2.2009, 13:29
SABROG Цитата(Гость_Константин_* @ 9.2.2009, 12... 9.2.2009, 13:59
Litkevich Yuriy Цитата(SABROG @ 9.2.2009, 16:59) Меня еще... 9.2.2009, 14:14
Константин > А где ты увидел выход в eventloop?
согласен, ... 9.2.2009, 14:25
SABROG Цитата(Litkevich Yuriy @ 9.2.2009, 14:14)... 9.2.2009, 14:38
Константин я и не говорил, что к нему достучаться. в лучшем с... 9.2.2009, 15:23
Дмитрий - Подскажите пожалуйста что выбрать? Устанавливаю в ... 2.8.2011, 14:52
wiz29 разница именно в моменте удалении непосредственно ... 2.8.2011, 15:43
Дмитрий - В документации для QAbstractItemView::setSelection... 2.8.2011, 17:07![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 19.1.2026, 14:19 |