Russian Qt Forum
Ноябрь 25, 2024, 07:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: как организовать закрытие формы,если в ней были открыты другие формы  (Прочитано 19707 раз)
spectre71
Гость
« Ответ #30 : Июль 15, 2009, 13:44 »

Я уже писал
Код
C++ (Qt)
int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
   main_form w;
   w.show();
   return a.exec();
}
И не надо никаких Qt::WA_DeleteOnClose!
А на:
virtual void closeEvent(QCloseEvent *event);
Позакрывать все второстепенные окна!
Записан
spirit
Гость
« Ответ #31 : Июль 15, 2009, 13:45 »

Я уже писал
Код
C++ (Qt)
int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
   main_form w;
   w.show();
   return a.exec();
}
И не надо никаких Qt::WA_DeleteOnClose!
А на:
virtual void closeEvent(QCloseEvent *event);
Позакрывать все второстепенные окна!
результат будет такимже, писанины меньше.
Записан
spectre71
Гость
« Ответ #32 : Июль 15, 2009, 13:50 »

Можно еще использовать
void QApplication::closeAllWindows ()   [static slot]
Записан
Evgeniya
Гость
« Ответ #33 : Июль 15, 2009, 14:00 »

Ну да, видимо так действительно проще будет сделать...
Только если у меня не одна форма, а 4, то в каждой нужно будет перегружать эту функцию...
А можно как-нибудь узать было-ли окно открыто, т.е.создан класс???
Записан
spectre71
Гость
« Ответ #34 : Июль 15, 2009, 14:03 »

Ну да, видимо так действительно проще будет сделать...
Только если у меня не одна форма, а 4, то в каждой нужно будет перегружать эту функцию...
А можно как-нибудь узать было-ли окно открыто, т.е.создан класс???
Создан - Указатель не NULL;
открыто - isVisible ()
Записан
Evgeniya
Гость
« Ответ #35 : Июль 15, 2009, 14:58 »

Создан - Указатель не NULL;
открыто - isVisible ()
А если класс не был создан, то как проверить??
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #36 : Июль 15, 2009, 15:07 »

указатель == NULL?
Записан
spectre71
Гость
« Ответ #37 : Июль 15, 2009, 15:09 »

А если класс не был создан, то как проверить??
Веселый Веселый Веселый
Записан
Evgeniya
Гость
« Ответ #38 : Июль 16, 2009, 08:42 »

т.е. когда я объявляю указатель, doch *t и до его определения t=new doch(this);t->show(); , получается что t==NULL??Я правильно понимаю???просто у меня так не получается... Обеспокоенный
Записан
spirit
Гость
« Ответ #39 : Июль 16, 2009, 08:48 »

нет, если ты объявляешь таким образом doch *t; то нет ни какой гарантии (все зависит от компилятора), что указатель нулевой.
нужно явно инициализировать его нулем doch *t = 0;.
либо же использовать QPointer в таком виде QPointer<doch> t;.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #40 : Июль 16, 2009, 08:56 »

кстати я могу ошибасться, но вроде в с++ для всех переменных зовутся конструкторы по умолчанию, в тч для встроеных типов - как раз зануление их, нет? баги с неинициализированными переменными были в си, а вот в с++ никогда такого не встречал (в gcc)
Записан
Evgeniya
Гость
« Ответ #41 : Июль 16, 2009, 09:00 »

Спасибочки, теперь все понятно...
Всем,всем,всем огромное СПАСИБО!!!!!
Записан
Evgeniya
Гость
« Ответ #42 : Июль 16, 2009, 09:02 »

кстати я могу ошибасться, но вроде в с++ для всех переменных зовутся конструкторы по умолчанию, в тч для встроеных типов - как раз зануление их, нет? баги с неинициализированными переменными были в си, а вот в с++ никогда такого не встречал (в gcc)
У меня не зануляется...
Записан
spirit
Гость
« Ответ #43 : Июль 16, 2009, 09:06 »

кстати я могу ошибасться, но вроде в с++ для всех переменных зовутся конструкторы по умолчанию, в тч для встроеных типов - как раз зануление их, нет? баги с неинициализированными переменными были в си, а вот в с++ никогда такого не встречал (в gcc)
еще раз повторяю, все зависит от компилятора, например в студии выхеуказанный вызывов не инициализирует переменную нулем -- в ней мусор.
и вообще -- это плохой стиль не инициализировать переменные и пологаться на компилятор.
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.091 секунд. Запросов: 23.