paraq's multiview framework ● multiview objects ● multiview with server manager ●...
TRANSCRIPT
ParaQ's MultiView Framework
● MultiView objects● MultiView with Server Manager● Bringing it all together● Improvements
MultiView objects
● pqMultiView– Generic QSplitter based widget container
for managing multiple widgets.– Provides methods for splitting a view in
half horizontally or vertically, and removing views.
– Provides handles for referencing managed widgets.
MultiView objects
● pqMultiView is really nothing more than an interface for dynamic manipulation of QSplitters
MultiView objects
● pqMultiViewManager– Specialization of pqMultiView which uses
pqMultiViewFrame for the views.– pqMultiViewFrame provides GUI buttons for
manipulating the view.– Provides signals for receivers to put their
own widgets in the view.– Provides functionality for saving/restoring
state.
MultiView objects
● A lone pqMultiViewManager allows creation and deletion of blank views.
MultiView & Server Manager
– MultiView Render Module wants locations and sizes for all render windows.
– pqMultiViewRenderModuleUpdater latches onto all QVTKWidgets and watches for when windows resize and move.
QVTKWidget
QVTKWidget
MultiView RenderModule
RenderModule
RenderModule
Bringing it all together● When signaled ParaQ places
QVTKWidgets in the views.● Helper routine creates a QVTKWidget
and keeps render modules updated.
View Manipulation
MultiView Framework
QVTKWidget Factory & Render Modules
● ParaQ will all MultiView components working together
Improvements
● Support easier customization:– Move functionality from pqMultiViewManager
to pqMultiView.● Move signals and slots down.● Move save/restore down.
– Change pqMultiViewManager to not inherit from pqMultiView. Signals/slots are easier to customize than deriving from pqMultiView.
– Example: easily allows for a Prism-like single view manipulation toolbar for all views.