Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
47 / 21 / 11
Регистрация: 01.11.2013
Сообщений: 255
1

Вставка QTreeWidgetItem+QWidget после удаления его из QTreeWidget

17.05.2018, 23:26. Показов 674. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно, проблема заключается в том, что после вызова takeTopLevelItem(..) при вставке этого item'a обратно и вызове setItemWidget(..) крашится программа. Перед вызовом takeTopLevelItem(..) для виджета вызываю removeItemWidget(..). Если не вызывать последнюю функцию, программа всё так же крашится.

Добавлено через 1 час 15 минут
P.S. Виджет использую один и тот же.

Добавлено через 4 часа 38 минут
Как оказалось, removeItemWidget(..) вызывает setItemWidget(item, column, 0), а последняя удаляет виджет, если он привязан к item'у. При вызове takeTopLevelItem(..) так же происходит удаление виджета. Следовательно, вопрос, можно ли как-то вытащить виджет из дерева, не удаляя его?

Добавлено через 2 часа 52 минуты
Проблема решена. В качестве решения было предпринято создать для виджета фильтр эвентов, который обрабатывает все события, кроме
C++
1
QEvent::DeferredDelete
. Таким образом виджет остаётся работоспособным.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2018, 23:26
Ответы с готовыми решениями:

Получить QModelIndex из QTreeWidget или QTreeWidgetItem
Здравствуйте! У меня есть QTreeWidget и, естественно, итемы в нём. Как мне получить QModelIndex...

Война с drag and drop в QTreeWidget c отслеживанием в какую ветку был перенесен QTreeWidgetItem
Не могу решить такую задачу. Есть обычная иерархия QTreeWidget. Как реализовать drag and drop...

Домен после удаления продолжает существовать, как его удалить?
Я слаб в линуксе, обычно все делаю через админ-панель. Тут заметил, что Яндекс видит один из...

После удаления объекта ссылки на его поля продолжают действовать
День добрый. Существует такой метод: public static void Clearen(Person o) { ...

0
17.05.2018, 23:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.05.2018, 23:26
Помогаю со студенческими работами здесь

Умер Windows 7 после случайного удаления rpcrt.dll. Как его установить?
Всем привет. У меня проблема. Случайно удалил rpcrt4.dll, и система умерла, запускается только...

Удалить из текста находящегося в файле,самую длинную строку. Сохранить его после удаления этой строки
Проблема в том,что не могу понять как сосчитать самую длинную строку и как сохранять. Я сам...

QWidget и его связь с QPainter
Здравствуйте.Возникла проблема при реализации поставленной цели. Имеется программа при запуске...

Как связать QWidget* w = new QWidget(this) с файлом формы UI ?
Ну вопрос в сабже. Создал простую форму без класса. В коде применяется QGraphicsProxyWidget, у...

Как открыть QWidget из QWidget по нажатию кнопки
Здравствуйте! Подскажите как открыть по нажатию QPushButton еще один QWidget в нижеприведенном...

Как после создания файла сделать его свободным для других процессов, например, для удаления
Как после создания файла сделать его свободным для других процессов, например, для удаления?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru