QDialog as top-level window doesn't work

423 Views Asked by At

I have a main QWindow and a QFrame (mainF) on it, which contains some other gui elements. I maximize the QFrame as follows, if I click on a button on my QWindow:

  mainF->setWindowFlags(Qt::Dialog);      
  mainF->setWindowState((mainF->windowState(), Qt::WindowFullScreen));   
  mainF->show();

To minimize the QFrame and place it in its previous position again, I have created a QDialog (m_MinimizeFullscreenGui) with a button on it, which appears immediately on the right top corner of my QFrame if I maximize it:

QRect windowRectangle= m_MinimizeFullscreenGui->geometry();   
WindowRectangle.moveTopRight(QApplication::desktop()->availableGeometry().topRight());   
m_MinimizeFullscreenGui->setGeometry(windowRectangle);     
m_MinimizeFullscreenGui->setFixedSize(30, 30);   
m_MinimizeFullscreenGui->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);   
m_MinimizeFullscreenGui->setWindowState(m_MinimizeFullscreenGui->windowState()); 
m_MinimizeFullscreenGui->show();

The problem is: I want to have my small dialog window always on the top-level of my maximized QFrame. But if I click at somewhere on my QFrame, the dialog window goes in the background, so the Qt::WindowStaysOnTopHint flag doesn't work.

Where can be my mistake?

0

There are 0 best solutions below