PyQt置顶窗口
记录一下如何置顶窗口,使用setWindowFlags
会先关闭原有窗口,重新打开,不符合需求
具体原因参考:
QWidget窗口置顶闪烁问题
# coding:utf-8
import sysfrom PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QPushButton, QWidgetclass Window(QWidget):def __init__(self, parent=None):super().__init__(parent)self.topBtn = QPushButton('置顶', self)self.setWindowTitle("PySide6-Frameless-Window")self.topBtn.setGeometry(100, 100, 100, 100)self.topBtn.clicked.connect(self.toggleStayOnTop)def toggleStayOnTop(self):""" 切换 `置顶` 状态 """window_handle = self.windowHandle()if window_handle.flags() & Qt.WindowType.WindowStaysOnTopHint:self.setStayOnTop(False)else:self.setStayOnTop(True)def setStayOnTop(self, isTop: bool):""" 设置停留在顶部状态 """window_handle = self.windowHandle()window_handle.setFlag(Qt.WindowType.WindowStaysOnTopHint, isTop)# self.updateFrameless()self.show()if __name__ == "__main__":app = QApplication(sys.argv)demo = Window()demo.show()app.exec()