如何检查PyQt窗口是否存在

时间:2012-12-05 16:07:57

标签: python pyqt4

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

此应用程序将弹出一个窗口,显示应用程序中的特定事件。

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

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

我的情景也一样。

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

1 个答案:

答案 0 :(得分:1)

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

这是一个简单的演示:

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_())