void setWindowFlags(Qt::WindowFlags type);
上面是設置窗口類型的常用函數,下面對 Qt::WindowFlags 類型做一個大致的介紹:
enum Qt::windowType
flags Qt::WindowFlags
此枚舉類型用於為窗口小部件指定各種窗口系統屬性。它們相當不尋常,但在少數情況下是必要的。 其中一些標志取決於底層窗口管理器是否支持它們。主要類型有:
-
Qt::Widget:這是QWidget的默認類型。如果它們有父級,這種類型的部件是子部件,如果沒有父控件,則為獨立窗口。
-
Qt::Window:表示小部件是一個窗口,無論窗口小部件是否具有父控件,通常具有窗口系統框架和標題欄。 請注意,如果部件沒有父控件,則無法取消設置此標記(可以用在彈出子窗口比父窗口大很多的情況下)。
-
Qt::Dialog:指示部件是應該作為對話框窗口(即標題欄中通常沒有最大化或最小化按鈕)。這是 QDialog 的默認類型。如果要將其用作模態對話框,則應從另一個窗口啟動它,或者如果有父窗口,則與 QWidget::windowModality 屬性一起使用。
-
Qt::Sheet:表示該窗口是 Macintosh 工作表。 由於使用工作表意味着窗口模態,推薦的方法是使用 QWidget :: setWindowModality() 或 QDialog :: open()。
-
Qt::Drawer:表示該窗口小部件是 Macintosh 抽屜。
-
Qt::Popup:表示窗口小部件是彈出式頂級窗口,即它是模態的,但具有適合彈出菜單的窗口系統框架。
-
Qt::Tool:表示窗口小部件是工具窗口。工具窗口通常是一個小窗口,其標題欄和裝飾比通常小,通常用於工具按鈕的集合。 如果有父部件,則工具窗口將始終保持在其上。 如果沒有父部件,您可以考慮使用 Qt :: WindowStaysOnTopHint 使其位於最頂端。 默認情況下,當應用程序處於非活動狀態時,工具窗口將消失。 這可以通過 Qt :: WA_MacAlwaysShowToolWindow 屬性來控制。
-
Qt::ToolTip:表示窗口小部件是工具提示。 這在內部用於實現工具提示,沒有標題欄和窗口邊框。
-
Qt::SplashScreen:表示該窗口是閃屏。 這是 QSplashScreen 的默認類型。
-
Qt::Desktop:表示此小組件是桌面。 這是 QDesktopWidget 的類型。
-
Qt::SubWindow:表示此窗口小部件是子窗口,例如 QMdiSubWindow 窗口小部件。
-
Qt::ForeignWindow:指示此窗口對象是表示由另一個進程創建的本機平台窗口或手動使用本機代碼的句柄。
-
Qt::CoverWindow:表示該窗口代表一個封面窗口,例如,當應用程序在 BlackBerry 平台上最小化時顯示。
以及:
Qt::FrameWindowHint: // 沒有邊框的窗口
Qt::WindowStaysOnTopHint: // 總在最上面的窗口
Qt::CustomizeWindowHint: // 自定義窗口標題欄,以下標志必須與這個標志一起使用才有效,否則窗口將有默認的標題欄
Qt::WindowTitleHint // 顯示窗口標題欄
Qt::WindowSystemMenuHint // 顯示系統菜單
Qt::WindowMinimizeButtonHint // 顯示最小化按鈕
Qt::WindowMaximizeButtonHint // 顯示最大化按鈕
Qt::WindowMinMaxButtonsHint // 顯示最小化按鈕和最大化按鈕
Qt::WindowCloseButtonHint // 顯示關閉按鈕
還有許多標志可用於自定義頂級窗口的外觀,感興趣的朋友可以自己對照 API 看。也可以直接看下面關於 Qt::WindowFlags 的 API 截圖。
參考: