使用QWidget類創建的默認窗口有一個標題欄和系統圖標,標題欄、最大化按鈕、最小化按鈕和關閉按鈕。調用setWindowsFlags()函數或者在用構造函數創建窗口時設置flags,可改變窗口的類型。setWindowsFlags()的調用要在窗口顯示之前。其格式為:
setWindowsFlags(Qt.WindowFlags type)
Qt.WindowFlags在QtCore.Qt類中定義,包括:
Widget(小工具):QWidget類的默認類型
Window(窗口):QWidget類創建的是窗口,父組件可有可無。有標題欄、最小化、最大化和關閉按鈕
Dialog(對話框):有標題欄、幫助和關閉按鈕。窗口大小可用鼠標調整。將窗口設置為對話框類型的代碼為:
window.setWindowsFlags(QtCore.Qt.Dialog)
Sheet和Drawer(表和抽屜):窗口的Mac系統樣式
Popup(彈出菜單):窗口表現為彈出菜單樣式,沒有邊框和標題,但有陰影,無法用鼠標調整大小。
Tool(工具欄):窗口表現為工具欄,有邊框和比標準窗口標題欄高度小的標題欄和關閉窗口,用鼠標可以調整大小。
ToolTip(提示):窗口表現為幫助提示,沒有邊框和標題,無法用鼠標調整大小。
SplashScreen(啟動窗口):窗口表現為啟動窗口,沒有邊框和標題,無法用鼠標調整大小。是QSplashScreen類的默認值。
Desktop(桌面):窗口表現為桌面,不會在屏幕上顯示。
SubWindow(子窗口):窗口表現為子窗口,有邊框,標題欄,不能單獨存在,也無法用鼠標調整大小。
ForeignWindow(外部窗口):表示窗口為另一進程創建。
CoverWindow(封面窗口):在移動到平臺上最小化應用的窗口。
通過windowType()函數可獲取當前窗口的類型。
在創建窗口時可用“|”運行符一次設置多個屬性。下面列出QtCore.Qt常用的一些屬性,全面的內容詳見文檔:
MSWindowsFixedSizeDialogHint - 禁止調整窗口尺寸;
FramelessWindowHint - 去除邊框和標題欄;不能調整、移動窗口;
NoDropShadowWindowHint - 去除窗口的陰影;
CustomizeWindowHint - 去除邊框和標題欄, 但增加bulk效果,尺寸可調整;
WindowTitleHint - 增加窗口標題;
WindowSystemMenuHint - 增加系統菜單和關閉按鈕;
WindowMinimizeButtonHint - 增加最小化按鈕;
WindowMaximizeButtonHint - 增加最大化按鈕;
WindowMinMaxButtonsHint-增加最小化、最大化按鈕;;
WindowCloseButtonHint-增加關閉按鈕;
WindowContextHelpButconHint-增加幫助按鈕;;
WindowStaysOnTopHint - 將窗口置頂:
WindowStaysOnBottomHint - 將窗口置底。
通過windowFlags()函數可獲取當前窗口的屬性。