Qt窗口操作函數(最大化,全屏,隱藏最大化,最小化)


Qt窗口中的一些小技術總結

 

//Qt主窗口沒有最小化,最大化按鈕且最大化顯示 

int main(int argc, char *argv[]) 

QApplication a(argc, argv); 

TestQtForWinCE w; 

w.setWindowFlags(w.windowFlags()& ~Qt::WindowMaximizeButtonHint& ~Qt::WindowMinimizeButtonHint); 

w.showMaximized(); 

return a.exec(); 

}

 

這里的“&~”是取反以后再按位與的意思,下面的“|”是按位或的意思

//同時禁止最大化最小化按鈕

Qt::WindowMinMaxButtonsHint

//也禁止關閉

w.setWindowFlags(w.windowFlags() &~ (Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint));

 

 

Qt全屏顯示函數        

1、window.showFullScreen()//此方法只對頂級窗口有效,對子窗口無效

 

2、yourwidget->setWindowFlags(Qt::window | Qt::FramelessWindowHint); 

   (第一個Qt::window表示此widget是窗口類型,第二個參數使用無框架就是沒有標題,狀態欄和邊框)

 

Qt最大化顯示函數         window.showMaximized()

Qt最小化顯示函數         window.showMinimized()

Qt固定尺寸顯示函數         window.resize(x,y)

 

 

子窗口全屏顯示

        QT中窗口部件QWidget成員函數showFullScreen();是用於將窗口部件全屏顯示,但是他只對窗口模式的部件有用。子窗口的特征是 Qt::SubWindow,不是獨立的窗口。因此對其調用showFullScreen()無效。通過對對子窗口調 用:setWindowFlags(Qt::Dialog);或setWindowFlags(Qt::Window);將其設為窗口模式后,即可調用 showFullScreen();進行全屏顯示了。

        如果要還原為普通窗口,調用setWindowFlags(Qt::subwindow)將子窗口設置為非頂級窗口,再調用showNormal()還原子窗口顯示。

參考

 

相對於子窗口的全屏顯示方法,不得不提的是子窗口退出全屏的方法。

MFC中,子窗口退出全屏的方法簡單直接,直接調用SetWindowPos()函數將子窗口顯示到預定的位置即可。

QT中,直接使用move和resize對窗口定位是沒有效果的。需要先將子窗口設位非窗口模式。之后再將窗口移到理想位置。 

 

即先調用setWindowFlags(Qt::Dialog);或者setWindowFlags(Qt::SubWindow);在調用move和resize函數。

有人提到退出全屏時,調用showNormal(),再調setWindowFlags(Qt::SubWindow)。

這有兩個問題:1)showNormal()也是只對頂級窗口有效。2)可以考慮先調用showNormal()將窗口設為原來大小,在將窗口設為子窗口模式。但這樣窗口回到父窗口之中也不會顯示原來的大小。

 

 

獲取屏幕寬度和高度

QApplication::desktop()->width()  ;

QApplication::desktop()->height() ;

即得到屏幕分辨率,如1024*768,800*600.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM