繁体   English   中英

如何在pyqt5中使应用程序窗口停留在顶部?

[英]How to make application window stay on top in pyqt5?

我正在尝试在pyqt5中制作一个桌面应用程序,该应用程序将保留在所有窗口的顶部。 我一直在网上闲逛,他们都说解决方案是使用setWindowFlags(Qt.WindowStaysOnTopHint)方法设置窗口标志,但这对我不起作用。 我还有其他方法可以做到这一点吗?

我在Windows 10上并使用Python 3.6 + pyqt5版本5.9.2。 我的代码如下:

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys


class Main(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowFlags(Qt.WindowStaysOnTopHint)
        self.initUI()
        self.show()

    def initUI(self):
        self.alertWidget = AlertWidget()
        self.setCentralWidget(self.alertWidget)


class AlertWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        grid = QGridLayout()
        self.setLayout(grid)
        grid.setAlignment(Qt.AlignTop)

        self.alertTextBox = QTextEdit()
        grid.addWidget(self.alertTextBox, 0, 0)

if __name__ == '__main__':
        app = QApplication(sys.argv)
        main = Main()
        sys.exit(app.exec_())

假设您的其余代码很好,请更改以下代码行:

self.setWindowFlags(Qt.WindowStaysOnTopHint)

到以下代码行:

self.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.CustomizeWindowHint | Qt.WindowStaysOnTopHint)

链接到一个答案,解释为什么Qt.WindowStaysOnTop标志起作用需要更改上面的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM