32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
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_() |