Skip to main content
 首页 » 编程设计

python之如何检查 PyQt 窗口是否存在

2025年05月04日13myhome

我有一个使用 PyQt4 开发的应用程序。

此应用程序将弹出一个关于应用程序中特定事件的窗口。

我想知道弹出的弹出窗口是否存在于下一个事件中我想在同一个窗口上显示消息而不是创建另一个窗口。

例如,您可以考虑一个消息传递应用程序。当我们收到消息时,窗口会弹出。如果我们再次从同一用户收到消息,消息将附加到该窗口本身。

我的场景也是一样。

有人对此有任何想法吗...?

请您参考如下方法:

您所要做的就是保留对弹出窗口的引用,然后根据需要重置文本。

这是一个简单的演示:

from PyQt4 import QtGui, QtCore 
 
class Window(QtGui.QWidget): 
    def __init__(self): 
        QtGui.QWidget.__init__(self) 
        self.button = QtGui.QPushButton('ShowTime!', self) 
        self.button.clicked.connect(self.handleButton) 
        layout = QtGui.QVBoxLayout(self) 
        layout.addWidget(self.button) 
        self._dialog = None 
 
    def handleButton(self): 
        if self._dialog is None: 
            self._dialog = QtGui.QMessageBox(self) 
            self._dialog.setWindowTitle('Messages') 
            self._dialog.setModal(False) 
            pos = self.pos() 
            pos.setX(pos.x() + self.width() + 10) 
            self._dialog.move(pos) 
        self._dialog.setText( 
            'The time is: %s' % QtCore.QTime.currentTime().toString()) 
        self._dialog.show() 
 
if __name__ == '__main__': 
 
    import sys 
    app = QtGui.QApplication(sys.argv) 
    window = Window() 
    window.show() 
    sys.exit(app.exec_())