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 に答える