1. 程式人生 > >QT 子視窗退出全屏

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(),

此種情況確實可以退出全屏,但是子視窗並沒有掛到原本的父視窗下,

如果將父視窗移動,則退出全屏後的子視窗仍在退出後的位置,脫離了父視窗,

很尷尬。