Graphical User Interface design =============================== ELDAM GUI uses the well known graphical framework Qt with its Python binding PyQt5. Among the multiple advantages of this approach is the ability to design the interface using QtCreator, a Qt interface creation software. Files generated by Qt creator can then be read by PyQt5 to bind them to the Python logic. :class:`~eldam.gui.mainwindow.MainWindow` is the class corresponding to the main window. It is composed of separated widgets for each tab of ELDAM's interface. Each widget's design is defined in a dedicated *.ui* file while its logic is coded in a dedicated Python class inheriting :class:`~eldam.gui.widgets.base_widgets.EldamWidget`. ELDAM version check ------------------- At startup, ELDAM will launch :meth:`~eldam.gui.mainwindow.MainWindow.check_eldam_version` which will compare the current ELDAM version (found in :const:`~eldam.settings.ELDAM_VERSION`) to the result of :func:`~eldam.utils.gui.get_last_eldam_version_number` and inform the user in case of new available ELDAM version. .. warning:: :func:`~eldam.utils.gui.get_last_eldam_version_number` returns the last ELDAM version number based on tags of the Gitlab repository. Therefore this feature needs that every new release commit of ELDAM is given a tag like *V1.2-release*. Error management ---------------- The class :meth:`~eldam.gui.exception_hook.UncaughtHook` is used to catch exceptions and display it to the user in a new window. .. image:: ../_static/eldam_bug.png :name: Eldam bug window :target: ../_static/eldam_bug.png