Skip to content

Reimplement the GUI in pure Python. #70

@heijligen

Description

@heijligen

The current GUI is implemented in C++ under src/hdtv/rootext/display/. It is based on Cern's ROOT library, with additional calls directly to libX11, and loaded via the PyROOT interface as ROOT.HDTV.Display. It is the main reason HDTV is not cross-platform capable.
A 2nd dummy implementation exists in src/hdtv/dummy.py. It can replace the original GUI to run the tests or for a headless mode #61. This is done through the monkey_patch_ui class in src/hdtv/util.py:849.

A new interface should be reimplemented in pure Python to overcome the limitations of the current one.
A prototype can be found in https://github.com/hdtv-tool/gui-concept and used as reference. It uses PyQt5, Uproot5, Matplotlib, and Scipy


Ideas:

  • The same mechanism as Add headless mode #61 can to be used to switch between a old and new GUI
  • The Interface should be well documented
  • C++ has types, those can be type annotations for the Python Interface making future work easier.

@h-mayr

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions