Skip to content
Snippets Groups Projects
ErrorPopup.py 1.27 KiB
Newer Older
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox

class ErrorPopup(object):

    def __init__(self,error_text,details = None,button_label = None,button_callback=None):
        self.error_text = error_text
        self.button_label = button_label
        self.button_callback = button_callback
        self.details = details


    def show_popup(self):
        msg = QMessageBox()
        msg.setWindowTitle("Erreur")
        msg.setText("Erreur: " + self.error_text)
        msg.setIcon(QMessageBox.Critical)

        if self.button_label is not None and self.button_callback is not None:
            msg.setStandardButtons(QMessageBox.Cancel|QMessageBox.Retry)
            msg.setDefaultButton(QMessageBox.Cancel)
            msg.button(QMessageBox.Cancel).clicked.connect(msg.close)
            msg.button(QMessageBox.Retry).setText(self.button_label)
            msg.button(QMessageBox.Retry).clicked.connect(self.button_callback)
        else:
            msg.setStandardButtons(QMessageBox.Ok)
            msg.setDefaultButton(QMessageBox.Ok)
            msg.button(QMessageBox.Ok).clicked.connect(msg.close)
        msg.setInformativeText(self.error_text)
        if self.details is not None:
            msg.setDetailedText(self.details)
        msg.exec_()