Название: закрытие MDI дочернего окна Отправлено: foufou от Октябрь 20, 2010, 22:00 Пытаюсь сделать так, чтобы дочернее MDI окно само себя закрыло. Типа пишется сообщение "введены неправильные данные" после чего окно закрывается.
Пишу после выдачи MessageBox: this->close(). Это приводит к тому, что очищается вся форма дочернего окна и остается пустой прямоугольник формы с тремя кнопками в заголовке. Не мог ли мне кто-нибудь подсказать, как правильно дочернему окну застрелиться ? Создавалось дочернее окно так: formTable *childTable = new formTable; QMdiSubWindow *subWindow = mdiArea->addSubWindow(childTable); subWindow->setWindowIcon(QIcon(":/images/table.png")); форму дочернего окна накидал в дизайнере. Название: Re: закрытие MDI дочернего окна Отправлено: Anarion от Октябрь 20, 2010, 23:12 Не знаю, как с точки зрения здравого смысла, но, например.
Когда добавляете окно в MDI получаете указатель на это самое окно, Код
Можно в вашем классе дочернего окно объявить эту же переменную: Код
и инициализировать ее при добавлении: Код
В самом же дочернем описать метод, например: Код
Название: Re: закрытие MDI дочернего окна Отправлено: foufou от Октябрь 20, 2010, 23:28 Спасибо за ответ !
Удалил вот таким вот методом (помоему, несколько извратным) : foreach (QWidget *win, QApplication::topLevelWidgets()) { if (MainWindow *mainWin = qobject_cast<MainWindow *>(win)) { QMdiSubWindow *subWindow = mainWin->mdiArea->activeSubWindow(); subWindow->close(); } } Название: Re: закрытие MDI дочернего окна Отправлено: Anarion от Октябрь 20, 2010, 23:44 Как альтернатива подобным образом можно установить имя для MDI области методом
Код
А затем искать по всем виджетам нужное имя. Код
Название: Re: закрытие MDI дочернего окна Отправлено: panAlexey от Октябрь 20, 2011, 22:55 В самом же дочернем описать метод, например: заюзал.Код
Название: Re: закрытие MDI дочернего окна Отправлено: GraninDm от Май 17, 2012, 10:08 Может кому пригодится...
void myMDIForm::on_buttonClose_clicked() { qobject_cast<QMdiSubWindow*>(parent())->close(); } Первоисточник http://lists.trolltech.com/qt-interest/2007-10/msg00277.html (http://lists.trolltech.com/qt-interest/2007-10/msg00277.html) |