Доброго времени суток!
Есть проект с несколькими формами, иерархия такая:
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.