2

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

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

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

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

我的情况也是一样的。

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

4

1 回答 1

2

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

这是一个简单的演示:

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_())
于 2012-12-05T18:48:30.457 回答