Qt視窗操作函式(最大化,全屏,隱藏最大化,最小化)
轉自:http://blog.csdn.net/zhangshan415/article/details/8463532
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.
相關文章
- 【C#學習筆記】視窗隱藏、最小化、最大化、正常化C#筆記
- PyQT5之視窗最大化最小化QT
- win10關閉程式視窗、最大化最小化快捷鍵是什麼_win10關閉程式視窗、最大化最小化快捷鍵使用方法Win10
- WPF視窗最大化(不覆蓋工作列)
- winform 無邊框窗體實現拖動、最大化、最小化、關閉ORM
- 如何在無頭模式下下載和最大化視窗?模式
- Win10怎麼禁止拖動最大化視窗變小_win10系統禁止視窗最大化後拖動變小Win10
- Qt 子視窗 隱藏標題欄的圖示,隱藏在工作列上的圖示QT
- WPF在UserControl使用MVVM模式實現窗體移動,最大化,最小化,關閉MVVM模式
- WPF中窗體最大化問題處理
- C# WinForm 關於窗體最大化時的是否全屏效果與是否遮蓋工作列C#ORM
- C# Winform 主視窗最小化隱藏至系統托盤中(適合小白)C#ORM
- 詳解SQL操作的視窗函式SQL函式
- C# WinForm 禁止最大化、最小化、雙擊標題欄、雙擊圖示等操作C#ORM
- 解決winform中mdi子窗體載入時顯示最大化最小化按鈕的方法ORM
- 視窗函式函式
- win10怎樣隱藏工作列_win10全屏工作列隱藏操作方法Win10
- Windows10視窗最大化後無法還原縮小如何解決Windows
- 隱藏控制檯應用程式的視窗
- PostgreSQL:視窗函式SQL函式
- SQL 視窗函式SQL函式
- Mysql視窗函式MySql函式
- Hive視窗函式Hive函式
- 函式索引產生隱藏列函式索引
- Win10電腦玩遊戲無法最大化視窗遊戲的解決方法Win10遊戲
- Qt: 隱藏選單QMenuQT
- Qt隱藏標題欄QT
- Spark操作開窗函式Spark函式
- Eclipse3.3新特性體驗之最大化最小化改進(轉)Eclipse
- Oracle分析函式與視窗函式Oracle函式
- ACM Yougth的最大化ACM
- hive視窗函式使用Hive函式
- Qt視窗居中QT
- QT視窗類QT
- Windows 任務計劃隱藏顯示黑視窗Windows
- 如何在Windows下啟動Koa並隱藏視窗Windows
- 【函式】oracle視窗函式over()的理解函式Oracle
- hive視窗分析函式使用詳解系列二之分組排序視窗函式Hive函式排序