7.2. pyopus.plotter.manager
— Manager for Matplotlib plot windows
Manager for Matplotlib plot windows
The graphical part (PyQt + MatPlotLib) is running in a thread and the
part that issues the plotting commands (defined in the
interface
module) runs in the main thread (or process).
The main thread uses a QPController
object for sending and receiving
messages from the graphical thread. The messages are sent to the GUI by
calling the processMessage()
method of a QPController
object
via a meta object. A queue.Queue
object is used for sending the
response back to the main thread. On the graphical thread’s side a
QPControlWindow
widget is handling the received commands.
- class pyopus.plotter.manager.QPController(args=[])[source]
This is the controller responsible for sending commands to the GUI and collection responses.
args are passed to the
GUIentry()
function which forwards them as command line arguments to theQApplication
object.- join()[source]
Waits for the GUI thread to finish.
KeyboardInterrupt
andSystemExit
are caught and the GUI is stopped upon which the exception is re-raised.
- lockGUI()[source]
Marks the beginning of a section of code where Matplotlib API calls are made. Locking prevents these calls from interfering with the PyQt event loop and crashing the application.