![]() |
|
|
![]()
|
|
| pan2004 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 6 Всего: 9 |
Чтото не нашел в Qtшной справке нормального объяснения, как удаляются итемы со сцены...
С одной стороны, в описании деструктора QGraphicsItem написано, что он должен автоматически удалять итем со сцены, где он находится. Но прямое(deleteLater отсутствует?)
завершается, конечно же, окошком "программа выполнила недопустимую ...". Убрать итем можно функцией
Вопрос в том, нужен ли этот delete? Итем уже не принадлежит сцене, и никогда больше не станет видимым, но она явно не хочет удалять его сама(намечается утечка памяти...)... Кроме того, программа все равно рушится, но видимо только в том случае, если у удаляемого итема есть childItems(почему?! ПС Все объекты находятся изначально в "куче". Класс итема самописный. ППС Но насколько я понимаю, если удаляешь объект сцены, она должна удалить все свои итемы самостоятельно? Qt 4.4.3 Это сообщение отредактировал(а) pan2004 - 24.12.2008, 21:08 |
||||
|
|||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Случаем не в event'e удаляешь ?
|
|||
|
||||
| pan2004 |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 6 Всего: 9 |
Разве что косвенно. функция, в которой все это происходит, вызывается как реакция на сигнал QAction::triggered(). Вылет происходит не сразу, во время paintEvent()а Добавлено через 6 минут и 39 секунд Btw нашел тока что в исходниках QGraphicsScene::removeItem:
При этом в справке:
)вот и верь после этого людям... Главный вопрос остается открытым |
||||||
|
|||||||
| pan2004 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 6 Всего: 9 |
вопрос решен.
Проблема была в отсутствии вызова prepareGeometryChange() в паре мест. После добавления этой функции, все странности прекратились |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |