我们接下来的讨论,会基於读者已经先读过我 day5 文章 的架构下去进行程序设计
如果还不清楚我程序设计的逻辑 (UI.py、controller.py、start.py 分别在干麻)
建议先阅读 day5 文章後再来阅读此文。
https://www.wongwonggoods.com/python/pyqt5-5/
这篇文章我们要来讨论 PyQt 里面一个很酷的东西,setWindowFlags,
我们主要要讨论的功能都是未来我会用到的功能。
在 setWindowFlags 里面有很多的定义,
其中有几个我会用到
当我们没有特别设定参数时,只继承 「QDialog」 的视窗预设都只会有关闭按钮。
如果是继承自 「QWidget」,则缩小、放大、关闭按钮都会有
。
这些功能都定义在 PyQt5.QtCore 中,记得要 import !!!
from PyQt5.QtCore import *
我们就可以用以下的设定方式,来对视窗做一些特别的控制
我们先透过 Qtdesinger 随便建立一份 UI 介面
并如同之前的方式,建立一个可直接执行的 UI.py
pyuic5 -x day22.ui -o UI.py
我们可以发现目前的视窗中,放大/缩小/关闭的功能都是有的。
打开 UI.py,我们发现我们的视窗果然是继承於「QWidget」
所以预设是缩小、放大、关闭按钮都会有。
self.centralwidget = QtWidgets.QWidget(MainWindow)
# 只有缩小/关闭 (取消放大)
MainWindow.setWindowFlags(Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint)
# 只有放大/关闭 (取消缩小)
# MainWindow.setWindowFlags(Qt.WindowMaximizeButtonHint | Qt.WindowCloseButtonHint)
# 只有关闭 (取消放大缩小)
# MainWindow.setWindowFlags(Qt.WindowCloseButtonHint)
# 视窗永远在最上层,适合互动性高的程序
# MainWindow.setWindowFlags(Qt.WindowStaysOnTopHint)
# 视窗永远在最下层,适合背景程序
# MainWindow.setWindowFlags(Qt.WindowStaysOnBottomHint)
# 如果要一起使用,记得都要 | 连接在一起,不然後来的会洗掉之前的
例如我们取消放大的功能,结果如下图
如果以上的要一起使用(混用),记得都要 | 连接在一起,不然後来的会洗掉之前的
例如,如果我同时想要"取消放大缩小、只留下关闭",且还要视窗永远在最上层。
我要写
# 只有缩小/关闭 (取消放大)
# 视窗永远在最上层,适合互动性高的程序
MainWindow.setWindowFlags(Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint | Qt.WindowStaysOnTopHint)
不能这样写 (後者会洗掉前者的功能)
# 只有缩小/关闭 (取消放大)
MainWindow.setWindowFlags(Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint)
# 视窗永远在最上层,适合互动性高的程序
MainWindow.setWindowFlags(Qt.WindowStaysOnTopHint)
★ 本文也同步发於我的个人网站(会有内容目录与显示各个小节,阅读起来更流畅):【PyQt5】Day 22 - PyQt 视窗的个性化/属性控制 setWindowFlags,禁止放大缩小、永远显示於最上层/最下层
XOR相较前面的指令,是比较难懂一点,他的意思是两侧条件有一边为1,就回传1,否则都回传0 ...
假设今天有的flask服务要附上能一起使用的DB,可以考虑使用Docker compose这个服务。...
因应国际化的需求,专案决定也要符合 international 的规格,Navbar 右上角的「选择...
此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。 语法 .filter(select...
1.文字工具 (档案12,影片Ps1) 左框 (1)文字工具 (1)文字: a.段落文字:拉框,拉大...