Page History
...
- Modules: lcls2/psana/psana/graphqt/GW*.py and other
- Examples: lcls2/psana/psana/graphqt/examples/ex_GW*.py and other
PyQt Widgets
GWView
GWViewExt
GWViewImage
GWViewHist
GWViewAxis
...
GWViewColorBar
GWImageAxes
GWSpectrum
GWViewImageROI
Summary for Widgets
Widget | Functionality | Parameters | isIs-a Dependency | Comments | |||
---|---|---|---|---|---|---|---|
GWView | moving/zooming viewport for scene | rscene, origin='UL', scale_ctl='HV' | GWView < QGraphicsView | ||||
GWViewExt | + adds update speed and signals to GWView | + signal_fast | GWViewExt < GWView | ||||
GWViewImage | + QPixmap to QGraphicsScene of GWViewExt | GWViewImage < GWViewExt | |||||
GWViewHist | + Histogram to ... | GWViewHist < GWViewExt | |||||
GWViewAxis | + Histogram Axis to ... | GWViewAxis < GWViewExt | |||||
GWViewColorBar | + ColorBar to ... | GWViewColorBar < GWViewExt | |||||
GWImageAxes | QWidget with image and x-y axes | GWImageAxes < QWidget | |||||
GWSpectrum | QWidget with histogram x-y axes and color bar | GWSpectrum < QWidget | |||||
GWViewImageROI | + ROI to GWImageAxes | GWViewImageROI < GWImageAxes | |||||
Control
Handles and ROI
Control Handles
Handle Type | Functionality | Parameters | Is-a Dependency | Comments |
---|---|---|---|---|
Origin | ROI origin position | |||
Translation | Handle for entire ROI translation | |||
Rotation | Handle for ROI rotation | |||
Move | Handle for moving of particular ROI's point | |||
Menu | Pop-up menu on mouse click | Invert/delete/change lookout | ||
Center | The same as Move? | |||
Q: Anything else? |
ROI
ROI Type | Functionality | Parameters | Is-a Dependency | Comments |
---|---|---|---|---|
Pixel | single pixel mask | position | ||
Line | pixels along line | position1, position2 | Q: width? | |
Rectangle | position(T,L), size (W,H), rotation | |||
Ellipse | position(center), size (W,H), rotation | |||
Closed Polyline | position[N-points] | |||
Arche | 3-points like in AMI2 | |||
Q: Circle? | position and radius | Q: subcase of Ellipse | ||
Q: Square? | position, size, rotation | Q: subcase of Rectangle | ||
Q: Polygone? | Q: subcase of Polyline | |||
Q: Anything else? |
Behavior
Q: how many handles per ROI - minimal or in each corner?
Q: how to add ROI to image
- select ROI type from GUI - draws default ROI - then move and re-shape it (like in ami2 or Chuck's Psocake) - intuitive but needs more clicks...
- select ROI type from GUI - then click and drag on image - less intuitive but less number of clicks (like in Power point, AutoCAD)
Q: what is the most convenient control behavior?
- mask on/off - shows image with/without ROIs
- in regular case ROIs are shown by boarder lines only
- on mouse click close to ROI boarder line > control points shows-up/disappears for one ROI at a time
- click and drag handle to change ROI position/size/rotation or see a menu of actions
- bottom to convert ROIs to mask
Implementation pattern
- factory for control handles
- factory for ROIs
References
Overview
Content Tools