Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt] Вопрос по созданию объектов 
V
    Опции темы
Любитель
Дата 8.6.2009, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Удалять вручную можно. Деструктор QObject вначале проверит своего парента и, если надо, отметится, что "я больше не твой чайлд". Но причём тут delete this? Это потенциально опасная конструкция и.. вообщем плохая практика. В любом случае же, я думаю, есть какая-то обёртка вызывающая диалог (передающая параметры для инициализации, возвращающая результат)? Вот в ней и удалять. Да и вообще, если диалог вызывается через exec (ну и вся обработка в рамках одной функции), зачем нужно создавать объект в куче (смотрим соседнюю тему)?


--------------------
PM MAIL ICQ Skype   Вверх
mes
Дата 9.6.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 7
Всего: 250



Цитата(chaos @  8.6.2009,  06:33 Найти цитируемый пост)
так что на счет удаления объекта в ручную? 

В принципе  Любитель все объяснил. Добавлю лишь кусок псевдокода показывающий поведение Окна:
Код

class Widget 
{
       Widget (Widget* parent) : m_parent(parent)
                               {
                                    if (m_parent) m_parent->m_childs.Add(this);
                               }
       ~Widget () {
                     while (Widget * w = m_childs.begin()) w->Close();
                     if (m_parent) m_parent->m_childs.Remove(this);
                  }

    private:
        Widget       * m_parent;
        WidgetArray    m_childs;

};



--------------------
PM MAIL WWW   Вверх
chaos
Дата 19.6.2009, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 5
Всего: 44



Любитель, 
mes, 
Спасибо!
PM WWW   Вверх
pan2004
Дата 21.6.2009, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 6
Всего: 9



chaos, для таких случаев умные тролли придумали метод deleteLater() (можно вызывать из объекта вместо delete this;)


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.