PyQT5 关于WindowStaysOnBottomHint窗口置底失效BUG问题的解决(我直接疑惑???)

拓展阅读

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.

猜你喜欢

转载自blog.csdn.net/Enderman_xiaohei/article/details/108432835
今日推荐