Source code for lavuelib.messageBox

# Copyright (C) 2017  DESY, Notkestr. 85, D-22607 Hamburg
#
# lavue is an image viewing program for photon science imaging detectors.
# Its usual application is as a live viewer using hidra as data source.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation in  version 2
# of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA  02110-1301, USA.
#
# Authors:
#     Jan Kotanski <jan.kotanski@desy.de>
#     Christoph Rosemann <christoph.rosemann@desy.de>
#


""" error message box """

import sys

try:
    try:
        import tango
    except ImportError:
        import PyTango as tango
    #: (:obj:`bool`) tango imported
    TANGO = True
except ImportError:
    #: (:obj:`bool`) tango imported
    TANGO = False

from pyqtgraph import QtCore

try:
    from pyqtgraph import QtWidgets
except Exception:
    from pyqtgraph import QtGui as QtWidgets


[docs]class MessageBox(QtCore.QObject): """ error message box """ def __init__(self, parent): """ constructor :param parent: parent object :type parent: :class:`pyqtgraph.QtCore.QObject` """ QtCore.QObject.__init__(self, parent)
[docs] @classmethod def getText(cls, default, error=None): """ provides error message text fro sys.exc_info() :param default: default message test :type default: :obj:`str` :param error: exception to describe :type error: :obj:`Exception` :returns: exception message :rtype: :obj:`str` """ if error is None: error = sys.exc_info()[1] text = default try: if TANGO and isinstance(error, tango.DevFailed): text = str("\n".join(["%s " % (err.desc) for err in error])) else: text = str(error) except Exception: pass return text
[docs] @classmethod def warning(cls, parent, title, text, detailedText=None, icon=None): """ creates warning messagebox :param parent: parent object :type parent: :class:`pyqtgraph.QtCore.QObject` :param title: message box title :type title: :obj:`str` :param text: message box text :type text: :obj:`str` :param detailedText: message box detailed text :type detailedText: :obj:`str` :param icon: message box icon :type icon: :class:`pyqtgraph.QtCore.QIcon` """ msgBox = QtWidgets.QMessageBox(parent) msgBox.setText(title) msgBox.setInformativeText(text) if detailedText is not None: msgBox.setDetailedText(detailedText) if icon is None: icon = QtWidgets.QMessageBox.Warning msgBox.setIcon(icon) spacer = QtWidgets.QSpacerItem(800, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) layout = msgBox.layout() layout.addItem(spacer, layout.rowCount(), 0, 1, layout.columnCount()) msgBox.exec_() msgBox.setParent(None)