使用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()函数可获取当前窗口的属性。
网友评论