Название: Удалить виджет с формы Отправлено: braboar от Июня 23, 2011, 12:06 Добрый день!
Есть приложение, сделанное в Designer'е, в том же designer'e сделаны еще виджеты, которые будут по разным событиям отображаться на форме. В обработчике такого события: Код Аналогичный код создает другой виджет, удаляя старый, и показывает новый. Однако я вижу два виджета. Как правильно удалить ненужный виджет? Название: Re: Удалить виджет с формы Отправлено: BRE от Июня 23, 2011, 12:24 А после dynamic_cast переменая curWidget точно не 0?
Проверь: Код Хотя вряд ли кастинг может не получиться... Где определена переменная curWidget? Название: Re: Удалить виджет с формы Отправлено: Пантер от Июня 23, 2011, 12:27 dynamic_cast -> qobject_cast
Название: Re: Удалить виджет с формы Отправлено: braboar от Июня 23, 2011, 12:37 BRE, curWidget определен в соответствующем *.h
Пантер, не помогло. Название: Re: Удалить виджет с формы Отправлено: Пантер от Июня 23, 2011, 12:43 Побольше бы кода.
Название: Re: Удалить виджет с формы Отправлено: GreatSnake от Июня 23, 2011, 12:53 Показывай первичное присвоение curWidget.
Название: Re: Удалить виджет с формы Отправлено: braboar от Июня 23, 2011, 13:23 GreatSnake,
Код
и далее: Код аналогично - другие обработчики, только виджеты меняются, CWidget - базовый класс для них, в его конструкторе: Код
Название: Re: Удалить виджет с формы Отправлено: kambala от Июня 23, 2011, 14:21 поскольку все создаваемые виджеты имеют родителя, то они будут удалены автоматически - нет нужды делать это руками. и при присвоении в curWidget достаточно просто curWidget = wgt.
да, и указателям надо присваивать 0, а не NULL :) Название: Re: Удалить виджет с формы Отправлено: braboar от Июня 23, 2011, 14:58 kambala, спасибо. Удаление delete curWidget - было перестраховкой, а NULL - наследство от MFC. BTW, google не помог: всплывающая подсказка показала, что:
Код а что такое __null - не ясно, не нашел. Название: Re: Удалить виджет с формы Отправлено: kambala от Июня 23, 2011, 15:01 stddef.h, msvs 2008
Код
и http://www.prog.org.ru/topic_7458_0.html |