设窗口的对象为window
最大化显示:
window.showMaximized()
模态显示
window.setWindowModality(Qt.ApplicationModal)
窗口风格WindowFlags
有window.setWindowFlag()和window.setWindowFlags()两个函数可供使用
例如设置窗口无边框且置顶显示:
window.setWindowFlag(此方法只能在Qt5.9及以上可用)
window.setWindowFlag(Qt.WindowStaysOnTopHint) #所有置顶显示
window.setWindowFlag(Qt.FramelessWindowHint) #去掉边框
window.setWindowFlags
window.setWindowFlags(Qt.WindowStaysOnTopHint|Qt.FramelessWindowHint)
注意不能分开设置,如果按以下写法,则只会设置无边框,不会置顶显示:
window.setWindowFlags(Qt.WindowStaysOnTopHint)
window.setWindowFlags(Qt.FramelessWindowHint)
最后一个window.setWindowFlags会将前面所有的窗口属性设为默认,然后再进行设置,如果要保留前面的设置,可以按如下写法:
window.setWindowFlags(window.windowFlags()|Qt.FramelessWindowHint)
如果要取消某(几)个属性,,可以按如下写法:
window.setWindowFlags(window.windowFlags()&~(Qt.FramelessWindowHint|Qt.WindowStaysOnTopHint))
常见的窗口属性:
枚举值 描述 效果
Qt.CustomizeWindowHint 关闭默认的窗口属性(貌似只能通过window.setWindowFlags设置,没有最大/小化、关闭按钮,但可以调节窗口大小)
Qt.FramelessWindowHint 去除窗口边界,无法通过鼠标移动、调整窗口大小
Qt.WindowStaysOnTopHint 置顶显示(在所有程序的上面,区分模态显示)
Qt.WindowMinimizeButtonHint 添加最小化按钮(如果单独取反只会变成不可点击)
Qt.WindowMaximizeButtonHint 添加最大化按钮(如果单独取反只会变成不可点击)
Qt.WindowMinMaxButtonsHint 添加最小化和最大化按钮(如果取反会消失)
Qt.WindowCloseButtonHint 添加关闭按钮(如果单独取反只会变成不可点击)
常用的设置
window.setWindowFlags(window.windowFlags()&~(Qt.WindowMinMaxButtonHint)) #取消最大最小化按钮
window.setWindowModality(Qt.ApplicationModal) #置顶显示,阻塞其他窗口
window.setWindowFlags(window.windowFlags() | Qt.WindowStaysOnTopHint) #置顶显示,不阻塞其他窗口,在该程序所有窗口之上
window.window.setParent(this,Qt.Window) #置顶显示,不阻塞其他窗口,只在该父窗口之上,注意:使用此句时在window构造函数中使用window.setWindowFlags设置窗体不起作用,window.setWindowFlags必须放到window.setParent之后
window.setWindowState(window.windowState() ^ Qt.WindowFullScreen) #在正常显示和全屏之间切换
#非模态显示,位于其他窗口之上,但是点击其他窗口会置后
window.show()
window.raise_()
设置窗口固定大小
window.setFixedHeight(sizeHint().height())
window.setFixedWidth(sizeHint().width())
设置窗口属性window.setAttribute()
window.setAttribute(Qt.WA_TranslucentBackground) #设置窗体背景透明