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