Python >> Tutoriel Python >  >> Python GUI >> PyQt GUI

Python PyQt5 :Comment afficher un message d'erreur avec PyQt5

N'oubliez pas d'appeler le .exec_() pour afficher l'erreur :

from PyQt5.QtWidgets import QMessageBox

msg = QMessageBox()
msg.setIcon(QMessageBox.Critical)
msg.setText("Error")
msg.setInformativeText('More information')
msg.setWindowTitle("Error")
msg.exec_()

Qt inclut une classe de dialogue spécifique aux messages d'erreur QErrorMessage que vous devez utiliser pour vous assurer que votre boîte de dialogue correspond aux normes du système. Pour afficher la boîte de dialogue, créez simplement un objet de boîte de dialogue, puis appelez .showMessage() . Par exemple :

error_dialog = QtWidgets.QErrorMessage()
error_dialog.showMessage('Oh no!')

Voici un exemple de script de travail minimal :

import PyQt5
from PyQt5 import QtWidgets

app = QtWidgets.QApplication([])

error_dialog = QtWidgets.QErrorMessage()
error_dialog.showMessage('Oh no!')

app.exec_()

Toutes les options ci-dessus ne fonctionnaient pas pour moi avec Komodo Edit 11.0. vient de renvoyer "1" ou si non implémenté "-1073741819".

Utile pour moi était :la solution de Vanloc.

def my_exception_hook(exctype, value, traceback):
    # Print the error and traceback
    print(exctype, value, traceback)
    # Call the normal Exception hook after
    sys._excepthook(exctype, value, traceback)
    sys.exit(1)

# Back up the reference to the exceptionhook
sys._excepthook = sys.excepthook

# Set the exception hook to our wrapping function
sys.excepthook = my_exception_hook