1

次のようにQMessageBox()を呼び出しました。

class Main(QDialog):
    def __init__(self):
        self.view = QUiLoader().load("app.ui", self)
        self.view.show()
        self.functionA()
    ....
    functionA():
        try:
            ....
        except Exception:
            QMessageBox.critical(self, "Error", "System Failure")

def main():
    app = QApplication(sys.argv)
    a = Main()
    sys.exit(app.exec_())

if __name__ == "__main__"
    main()

メッセージ ボックスの [OK] ボタンをクリックすると、ダイアログも閉じます。これを回避するには?

4

2 に答える 2

1

次のようにQMessageBoxを使用します。

QMessageBox.critical(self.view, "Error", "System Failure")
于 2015-01-01T09:19:06.523 に答える
1

あなたのコード例(実行するために少し変更されています)は私にとってはうまくいきます:

from PySide.QtGui import *

class Main(QDialog):
    def __init__(self):
        super().__init__()
        self.show()
        self.functionA()

    def functionA(self):
        try:
            raise Exception()
        except Exception:
            QMessageBox.critical(self, "Error", "System Failure")

app = QApplication([])
a = Main()
app.exec_()

メッセージ ボックスで [OK] を押しても、ダイアログは閉じません。おそらく、ダイアログを閉じる原因となる何か他のことも行っています。

于 2014-12-15T09:52:11.850 に答える