拓展阅读
PyQT5 关于WindowStaysOnBottomHint窗口置底失效BUG问题的解决(我直接疑惑???)
记录博文
一、 前言
网上找的很多资料都是窗口置顶失效,但是我遇到窗口置底失效。本来我是想写一篇如何将窗口置顶置底和恢复正常的的博文,结果总结代码的时候,发现:
我写的成品窗口没问题,但是抽出来的代码出bug了,我直接疑惑。
所以这一篇的由来就是这样。
二、代码
下面的代码是我修改过的,可以实现置底操作。主要问题出在 Qt.Tool,置底的时候必须加上这个。
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton
from PyQt5.QtCore import Qt
import sys
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.resize(500, 500)
self.button1 = QPushButton(self)
self.button1.setText("置顶")
self.button2 = QPushButton(self)
self.button2.setText("置底")
self.button2.move(100, 0)
self.button3 = QPushButton(self)
self.button3.setText("正常")
self.button3.move(200, 0)
self.button1.clicked.connect(self.topHint)
self.button2.clicked.connect(self.bottomHint)
self.button3.clicked.connect(self.normalHint)
def topHint(self):
self.setWindowFlags(Qt.WindowStaysOnTopHint)
self.show()
# show 感觉是个 bug,要加
def bottomHint(self):
# 这里需要加 Qt.Tool,原来的功能是取消在任务栏的显示
self.setWindowFlags(Qt.WindowStaysOnBottomHint|Qt.Tool)
self.show()
def normalHint(self):
self.setWindowFlags(Qt.Widget)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
三、给个实际演示
点我回顶部 ☚
Fin.