linux qt应用程序全屏,QT中MDI应用程序中更改子窗口大小或是全屏显示子窗口的方法...
1、QT中窗口部件QWidget成員函數(shù)showFullScreen();是用于將窗口部件全屏顯示。
但是他只對窗口模式的部件有用。子窗口的特征是 Qt::SubWindow,不是獨立的窗口。因此對其調(diào)用showFullScreen()無效。
通過對對子窗口調(diào) 用:setWindowFlags(Qt::Dialog);或setWindowFlags(Qt::Window);將其設為窗口模式后,即可調(diào)用 showFullScreen();進行全屏顯示了。
2、子窗口大小屬性是父窗口管理的,可以通過取得QMdiSubWindow來設置:
void MainWindow::createViewDataImpl()
{
//ViewDataImpl,自己定義的窗口,屬于Dialog類型
ViewDataImpl *win = new ViewDataImpl(this);
mdiArea->addSubWindow(win);
win->show();
mdiArea->activeSubWindow()->resize(700,200);? //關(guān)鍵句子
}
3、相對于子窗口的全屏顯示方法,不得不提的是子窗口退出全屏的方法。
MFC中,子窗口退出全屏的方法簡單直接,直接調(diào)用SetWindowPos()函數(shù)將子窗口顯示到預定的位置即可。
QT中,直接使用move和resize對窗口定位是沒有效果的。需要先將子窗口設位非窗口模式。之后再將窗口移到理想位置。
即先調(diào)用setWindowFlags(Qt::Dialog);或者setWindowFlags(Qt::SubWindow);在調(diào)用move和resize函數(shù)。
若果退出全屏時,調(diào)用showNormal(),再調(diào)setWindowFlags(Qt::SubWindow)。
這有兩個問題:1)showNormal()也是只對頂級窗口有效。2)可以考慮先調(diào)用showNormal()將窗口設為原來大小,在將窗口設為子窗口模式。但這樣窗口回到父窗口之中也不會顯示原來的大小。
總結(jié)
以上是生活随笔為你收集整理的linux qt应用程序全屏,QT中MDI应用程序中更改子窗口大小或是全屏显示子窗口的方法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员or需求工程师,谁决定软件的最高水
- 下一篇: Java判断字符串是否相同