GUI Layers
Generic GUI Overview
The
appmanager.AppManagermanages connections between a model and a UI view. It is purposely lightweight, relying on window manager support for most windowing functions. Therefresh_gui()function provides a means of synchronizing model changes across all UI views associated with that model.The
AppManagersupports multiple open models at the same time. Themodelattribute corresponds to the model for the active UI view.
Matplotlib Support
Many forms of graphics can be supported portably by using the matplotlib package.
2D lens layout graphics
Aberration plots for transverse ray aberrations and wavefront aberrations
Wavefront maps
Interactive \(y-\overline{y}\) and \(\omega-\overline{\omega}\) diagrams
Qt application
Qt5 app version of rayoptics
The
qtguisubpackage provides a desktop app,rayopticsapp. It provides an integration of rayoptics with the Qt GUI toolkit. Capabilities include:
an interface that hosts matplotlib graphics
a table grid for numeric model displays (template-based)
docking panel support for python objects
iPython console window (desktop app only)
Running the app
A desktop application is installed as part of rayoptics. It is invoked by running rayoptics at the command line.
> rayoptics
On a Windows machine, the rayoptics command will be located in a Scripts directory underneath the install directory. For example, if using a virtual environment named optics, the command would be
> \optics\Scripts\rayoptics