QT 子窗口退出全屏

m_pWidget代表子窗口,

子窗口显示全屏:

m_pWidget->setWindowFlags(Qt::Dialog);
m_pWidget->showFullScreen();

子窗口退出全屏:

m_pWidget->showNormal();
m_pWidget->setWindowFlags(Qt::SubWindow);
m_pWidget->showMaximized();

退出全屏时,前两句代码运行后,子窗口回到全屏前位置,

但是是最小化的,需要将其显示最大化,即添加最后一句代码即可。

试用其他的退出全屏方法,

如调用 setWindowFlags(Qt::Dialog) 或  setWindowFlags(Qt::SubWindow) 先将子窗口设置为非顶层窗口,

再将子窗口移动到全屏前的位置,以及大小设置为全屏前的大小,再调用showNormal(),

此种情况确实可以退出全屏,但是子窗口并没有挂到原本的父窗口下,

如果将父窗口移动,则退出全屏后的子窗口仍在退出后的位置,脱离了父窗口,

很尴尬。