Qt::WindowFlags枚舉類型解析


在使用Qt設計的時候經常會看到QWidget控件的構造函數出現下面這樣一句話:

QWidget(QWidget *parent=0,Qt::WindowFlags f=0)

QWidget *parent=0這段代碼容易理解,是指父窗口部件的指定。 
Qt::WindowFlags f=0這代碼就有一些讓人不解了,其實它是指定控件的窗口標識的。值為0即Qt::Widget。

那么就要好好說說控件的窗口標識的設置了。窗口標識由兩部分組成分別是窗口類型和窗口提示hint,一個窗口只有一個窗口類型。窗口提示定義了窗口的外觀,可以有多個提示,窗口提示進行按位取或即可。

要說清楚Qt::WindowFlags枚舉類型就必須清楚兩個概念:窗口和部件(這樣划分便於區分) 
窗口:相對獨立的,有子窗口和父窗口之分,主要特點就是窗口有完整的邊框。 
部件:必須依賴於父窗口而存在,依賴性較強,出現在父窗體的界面內部。

有了上述的概念就好解釋Qt::WindowFlags枚舉類型的用法了。首先判斷一個控件是否是窗體先根據參數parent的指定,要是值為0那么就可以判斷其是一個窗口。否則需要根據Qt::WindowFlags枚舉類型的值才可以判斷其是否為窗口還是部件。

在Qt Assistant里面搜索Qt::WindowFlags就會出現其詳細的解釋。這邊摘下其中部分內容:


Qt::Widget //是一個窗口或部件,有父窗口就是部件,沒有就是窗口 Qt::Window //是一個窗口,有窗口邊框和標題 Qt::Dialog //是一個對話框窗口 Qt::Sheet //是一個窗口或部件Macintosh表單 Qt::Drawer //是一個窗口或部件Macintosh抽屜 Qt::Popup //是一個彈出式頂層窗口 Qt::Tool //是一個工具窗口 Qt::ToolTip //是一個提示窗口,沒有標題欄和窗口邊框 Qt::SplashScreen //是一個歡迎窗口,是QSplashScreen構造函數的默認值 Qt::Desktop //是一個桌面窗口或部件 Qt::SubWindow //是一個子窗口 //為窗口添加一些功能 Qt::CustomizeWindowHint //關閉默認窗口標題提示 Qt::WindowTitleHint //為窗口修飾一個標題欄 Qt::WindowSystemMenuHint //為窗口修飾一個窗口菜單系統 Qt::WindowMinimizeButtonHint //為窗口添加最小化按鈕 Qt::WindowMaximizeButtonHint //為窗口添加最大化按鈕 Qt::WindowMinMaxButtonsHint //為窗口添加最大化和最小化按鈕 Qt::WindowCloseButtonHint Qt::WindowContextHelpButtonHint Qt::MacWindowToolBarButtonHint Qt::WindowFullscreenButtonHint Qt::BypassGraphicsProxyWidget Qt::WindowShadeButtonHint Qt::WindowStaysOnTopHint Qt::WindowStaysOnBottomHint Qt::WindowOkButtonHint Qt::WindowCancelButtonHint Qt::WindowTransparentForInput

至此,就介紹完了Qt::WindowFlags枚舉類型了,掌握這些會使以后的界面設計更加游刃有余。

 

https://blog.csdn.net/u012521552/article/details/51941396


免責聲明!

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



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