-
Notifications
You must be signed in to change notification settings - Fork 12
Reimplement the GUI in pure Python. #70
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Description
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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed