Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: porex от Декабрь 15, 2011, 14:54



Название: Дочернее окно на весь экран
Отправлено: porex от Декабрь 15, 2011, 14:54
Доброго времени суток!
Есть проект с несколькими формами, иерархия такая:
Цитировать
MainWindow (QWidget)
   |
   |----ConfigForm(QWidget)
                |
                |----PatternDialog(QDialog)
Первая форма создается и разворачивается на весь экран:
Код
C++ (Qt)
MainWindow w;
w.setWindowFlags(Qt::FramelessWindowHint);
w.showFullScreen();
Вторая форма создается динамически по нажатию на кнопку:
Код
C++ (Qt)
ConfigForm *Config=new ConfigForm(NULL);
Config->setAttribute(Qt::WA_DeleteOnClose,true);
Config->setWindowFlags(/*Qt::X11BypassWindowManagerHint|*/Qt::FramelessWindowHint);
//Config->setWindowModality(Qt::WindowModal);
//Config->show();
Config->showFullScreen();
/*Config->raise();
Config->activateWindow();*/
А PatternDialog так:
Код
C++ (Qt)
TPatternDialog PatternDialog(this);
//PatternDialog.setAttribute(Qt::WA_DeleteOnClose,true);
PatternDialog.setWindowModality(Qt::WindowModal);
//PatternDialog.setWindowFlags(Qt::WindowStaysOnTopHint);
PatternDialog.show();
PatternDialog.raise();
PatternDialog.activateWindow();
PatternDialog.exec();
Так вот если при создании ConfigForm в качестве родителя указать MainWindow, то форма не разворачивается на весь экран, а если передать NULL, то ConfigForm разворачивается на весь экран, но при создании PatternDialog на передний план вылазит MainWindow.
Как с этим бороться? Да, забыл, пишу под Ubuntu.


Название: Re: Дочернее окно на весь экран
Отправлено: trot от Декабрь 15, 2011, 17:29
Запихни в mainwindow какой нибудь layuot, а к нему добавь свой config.


Название: Re: Дочернее окно на весь экран
Отправлено: porex от Декабрь 15, 2011, 18:05
Не пойму как связан layout на mainwindow и дочерняя форма config ???