GUI Layers¶
Generic GUI Overview¶
The
appmanager.AppManager
manages 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
AppManager
supports multiple open models at the same time. Themodel
attribute 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
qtgui
subpackage 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