Russian Qt Forum
Мая 22, 2025, 05:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Дочернее окно  (Прочитано 3212 раз)
Wachburn
Гость
« : Января 18, 2010, 00:36 »

есть Главное окно, при нажатии на кнопку в нем вызывается еще одно окошко. Как сделать, чтобы при закрытии этого окна закрывалось и главное окно? Если ставлю, что вызываемое окно - подчиненное вызываемому, то это окно сразу появляется на форме. Как его сделать дочерним, но чтоб оно было самостоятельным, а не размещалось на главном окне?
Записан
BlackTass
Гость
« Ответ #1 : Января 18, 2010, 01:09 »

вызов close() либо после exec()-а дочернего (если модальное), либо вызов close() в слоте главного окна, привязанного к сигналу finished(если используется QDialog для дочернего), либо в евентфильтре, привязанному к дочернему окну по событию closeEvent.
Записан
Wachburn
Гость
« Ответ #2 : Января 18, 2010, 14:21 »

вызов close() либо после exec()-а дочернего (если модальное), либо вызов close() в слоте главного окна, привязанного к сигналу finished(если используется QDialog для дочернего), либо в евентфильтре, привязанному к дочернему окну по событию .

Дочернее окно у меня наследник QWidget, но дочернее оно только на словах, т.е. когда оно создавалось,то в нем родитель не указывался, т.е. так billForm = new BillForm(0);
потом по нажатии на кнопку в главном меню это окно открывается, так
connect(button, SIGNAL(clicked()), billForm, SLOT(show()));

теперь, когда оно видно, я хочу чтоб при закрытии главного окна, это окно billForm закрывалось...
Делаю как ты говоришь
connect(this, SIGNAL(closeEvent()), billForm, SLOT(close()));
но это не работает, также с сигналом destroyed() не работает.

Можешь подсказать как вообще дочерние окна реализовывать? чтоб объявляя их можно было им родителя указывать, но чтоб они при этом не появлялись сразу на родителе?



Все, вопрос решен
« Последнее редактирование: Января 18, 2010, 16:11 от Wachburn » Записан
crossly
Гость
« Ответ #3 : Января 18, 2010, 16:53 »

использовать QDialog.... использовать setWindowFlag(Qt::Window).... а лучше всего читать ассистент... Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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