def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except Exception as e: m = "%s\n%s" % (msg, e) detail = str(traceback.format_exc()) qmb = QMessageBox(QMessageBox.Critical, "Error", m) qmb.setDetailedText(detail) qmb.resize(400, qmb.size().height()) qmb.exec_()