Provided by: libqwt5-doc_5.2.3-1_all bug

NAME

       QwtPicker -

SYNOPSIS

       #include <qwt_picker.h>

       Inherits QwtEventPattern.

       Inherited by QwtPlotPicker.

   Public Types
       enum DisplayMode { AlwaysOff, AlwaysOn, ActiveOnly }
       enum RectSelectionType { CornerToCorner =  64, CenterToCorner =  128, CenterToRadius =
           256 }
       enum ResizeMode { Stretch, KeepSize }
       enum RubberBand { NoRubberBand =  0, HLineRubberBand, VLineRubberBand, CrossRubberBand,
           RectRubberBand, EllipseRubberBand, PolygonRubberBand, UserRubberBand =  100 }
       enum SelectionMode { ClickSelection =  1024, DragSelection =  2048 }
       enum SelectionType { NoSelection =  0, PointSelection =  1, RectSelection =  2,
           PolygonSelection =  4 }

   Signals
       void appended (const QPoint &pos)
       void changed (const QwtPolygon &pa)
       void moved (const QPoint &pos)
       void selected (const QwtPolygon &pa)

   Public Member Functions
       QwtPicker (QWidget *parent)
       QwtPicker (int selectionFlags, RubberBand rubberBand, DisplayMode trackerMode, QWidget *)
       virtual ~QwtPicker ()
       virtual void drawRubberBand (QPainter *) const
       virtual void drawTracker (QPainter *) const
       virtual bool eventFilter (QObject *, QEvent *)
       bool isActive () const
       bool isEnabled () const
       QWidget * parentWidget ()
       const QWidget * parentWidget () const
       virtual QRect pickRect () const
       ResizeMode resizeMode () const
       RubberBand rubberBand () const
       QPen rubberBandPen () const
       const QwtPolygon & selection () const
       int selectionFlags () const
       virtual void setEnabled (bool)
       virtual void setResizeMode (ResizeMode)
       virtual void setRubberBand (RubberBand)
       virtual void setRubberBandPen (const QPen &)
       virtual void setSelectionFlags (int)
       virtual void setTrackerFont (const QFont &)
       virtual void setTrackerMode (DisplayMode)
       virtual void setTrackerPen (const QPen &)
       QFont trackerFont () const
       DisplayMode trackerMode () const
       QPen trackerPen () const
       QPoint trackerPosition () const
       QRect trackerRect (const QFont &) const
       virtual QwtText trackerText (const QPoint &pos) const

   Protected Member Functions
       virtual bool accept (QwtPolygon &selection) const
       virtual void append (const QPoint &)
       virtual void begin ()
       virtual bool end (bool ok=true)
       virtual void move (const QPoint &)
       virtual void reset ()
       const QWidget * rubberBandWidget () const
       virtual QwtPickerMachine * stateMachine (int) const
       virtual void stretchSelection (const QSize &oldSize, const QSize &newSize)
       const QWidget * trackerWidget () const
       virtual void transition (const QEvent *)
       virtual void updateDisplay ()
       virtual void widgetKeyPressEvent (QKeyEvent *)
       virtual void widgetKeyReleaseEvent (QKeyEvent *)
       virtual void widgetLeaveEvent (QEvent *)
       virtual void widgetMouseDoubleClickEvent (QMouseEvent *)
       virtual void widgetMouseMoveEvent (QMouseEvent *)
       virtual void widgetMousePressEvent (QMouseEvent *)
       virtual void widgetMouseReleaseEvent (QMouseEvent *)
       virtual void widgetWheelEvent (QWheelEvent *)

Detailed Description

       QwtPicker provides selections on a widget.

       QwtPicker filters all mouse and keyboard events of a widget and translates them into an
       array of selected points. Depending on the QwtPicker::SelectionType the selection might be
       a single point, a rectangle or a polygon. The selection process is supported by optional
       rubberbands (rubberband selection) and position trackers.

       QwtPicker is useful for widgets where the event handlers can't be overloaded, like for
       components of composite widgets. It offers alternative handlers for mouse and key events.

       Example

           #include <qwt_picker.h>

           QwtPicker *picker = new QwtPicker(widget);
           picker->setTrackerMode(QwtPicker::ActiveOnly);
           connect(picker, SIGNAL(selected(const QwtPolygon &)), ...);

           // emit the position of clicks on widget
           picker->setSelectionFlags(QwtPicker::PointSelection | QwtPicker::ClickSelection);

               ...

           // now select rectangles
           picker->setSelectionFlags(QwtPicker::RectSelection | QwtPicker::DragSelection);
           picker->setRubberBand(QwtPicker::RectRubberBand);

       The selection process uses the commands begin(), append(), move() and end(). append() adds
       a new point to the selection, move() changes the position of the latest point.

       The commands are initiated from a small state machine (QwtPickerMachine) that translates
       mouse and key events. There are a couple of predefined state machines for point, rect and
       polygon selections. The selectionFlags() control which one should be used. It is possible
       to use other machines by overloading stateMachine().

       The picker is active (isActive()), between begin() and end(). In active state the
       rubberband is displayed, and the tracker is visible in case of trackerMode is ActiveOnly
       or AlwaysOn.

       The cursor can be moved using the arrow keys. All selections can be aborted using the
       abort key. (QwtEventPattern::KeyPatternCode)

       Warning:
           In case of QWidget::NoFocus the focus policy of the observed widget is set to
           QWidget::WheelFocus and mouse tracking will be manipulated for ClickSelection while
           the picker is active, or if trackerMode() is AlwayOn.

Member Enumeration Documentation

   enum QwtPicker::DisplayMode
       · AlwaysOff
          Display never.

       · AlwaysOn
          Display always.

       · ActiveOnly
          Display only when the selection is active.

       See also:
           QwtPicker::setTrackerMode(), QwtPicker::trackerMode(), QwtPicker::isActive()

   enum QwtPicker::RectSelectionType
       Selection subtype for RectSelection This enum type describes the type of rectangle
       selections. It can be or'd with QwtPicker::RectSelectionType and QwtPicker::SelectionMode
       and passed to QwtPicker::setSelectionFlags(). .IP "·" 2 CornerToCorner
        The first and the second selected point are the corners of the rectangle.

       · CenterToCorner
          The first point is the center, the second a corner of the rectangle.

       · CenterToRadius
          The first point is the center of a quadrat, calculated by the maximum of the x- and y-
         distance.

       The default value is CornerToCorner.

       See also:
           QwtPicker::setSelectionFlags(), QwtPicker::selectionFlags()

   enum QwtPicker::ResizeMode
       Controls what to do with the selected points of an active selection when the observed
       widget is resized.

       · Stretch
          All points are scaled according to the new size,

       · KeepSize
          All points remain unchanged.

       The default value is Stretch.

       See also:
           QwtPicker::setResizeMode(), QwtPicker::resize()

   enum QwtPicker::RubberBand
       Rubberband style

       · NoRubberBand
          No rubberband.

       · HLineRubberBand & PointSelection
          A horizontal line.

       · VLineRubberBand & PointSelection
          A vertical line.

       · CrossRubberBand & PointSelection
          A horizontal and a vertical line.

       · RectRubberBand & RectSelection
          A rectangle.

       · EllipseRubberBand & RectSelection
          An ellipse.

       · PolygonRubberBand &PolygonSelection
          A polygon.

       · UserRubberBand
          Values >= UserRubberBand can be used to define additional rubber bands.

       The default value is NoRubberBand.

       See also:
           QwtPicker::setRubberBand(), QwtPicker::rubberBand()

   enum QwtPicker::SelectionMode
       Values of this enum type or'd together with a SelectionType value identifies which state
       machine should be used for the selection.

       The default value is ClickSelection.

       See also:
           stateMachine()

   enum QwtPicker::SelectionType
       This enum type describes the type of a selection. It can be or'd with
       QwtPicker::RectSelectionType and QwtPicker::SelectionMode and passed to
       QwtPicker::setSelectionFlags()

       · NoSelection
          Selection is disabled. Note this is different to the disabled state, as you might have
         a tracker.

       · PointSelection
          Select a single point.

       · RectSelection
          Select a rectangle.

       · PolygonSelection
          Select a polygon.

       The default value is NoSelection.

       See also:
           QwtPicker::setSelectionFlags(), QwtPicker::selectionFlags()

Constructor & Destructor Documentation

   QwtPicker::QwtPicker (QWidget *parent) [explicit]
       Constructor

       Creates an picker that is enabled, but where selection flag is set to NoSelection,
       rubberband and tracker are disabled.

       Parameters:
           parent Parent widget, that will be observed

   QwtPicker::QwtPicker (intselectionFlags, RubberBandrubberBand, DisplayModetrackerMode, QWidget
       *parent) [explicit]
       Constructor

       Parameters:
           selectionFlags Or'd value of SelectionType, RectSelectionType and SelectionMode
           rubberBand Rubberband style
           trackerMode Tracker mode
           parent Parent widget, that will be observed

Member Function Documentation

   bool QwtPicker::accept (QwtPolygon &selection) const [protected],  [virtual]
       Validate and fixup the selection. Accepts all selections unmodified

       Parameters:
           selection Selection to validate and fixup

       Returns:
           true, when accepted, false otherwise

       Reimplemented in QwtPlotZoomer.

   void QwtPicker::append (const QPoint &pos) [protected],  [virtual]
       Append a point to the selection and update rubberband and tracker. The appended() signal
       is emitted.

       Parameters:
           pos Additional point

       See also:
           isActive(), begin(), end(), move(), appended()

       Reimplemented in QwtPlotPicker.

   void QwtPicker::appended (const QPoint &pos) [signal]
       A signal emitted when a point has been appended to the selection

       Parameters:
           pos Position of the appended point.

       See also:
           append(). moved()

   void QwtPicker::begin () [protected],  [virtual]
       Open a selection setting the state to active

       See also:
           isActive(), end(), append(), move()

       Reimplemented in QwtPlotZoomer.

   void QwtPicker::changed (const QwtPolygon &pa) [signal]
       A signal emitted when the active selection has been changed. This might happen when the
       observed widget is resized.

       Parameters:
           pa Changed selection

       See also:
           stretchSelection()

   void QwtPicker::drawRubberBand (QPainter *painter) const [virtual]
       Draw a rubberband , depending on rubberBand() and selectionFlags()

       Parameters:
           painter Painter, initialized with clip rect

       See also:
           rubberBand(), RubberBand, selectionFlags()

   void QwtPicker::drawTracker (QPainter *painter) const [virtual]
       Draw the tracker

       Parameters:
           painter Painter

       See also:
           trackerRect(), trackerText()

   bool QwtPicker::end (boolok = true) [protected],  [virtual]
       Close a selection setting the state to inactive. The selection is validated and maybe
       fixed by QwtPicker::accept().

       Parameters:
           ok If true, complete the selection and emit a selected signal otherwise discard the
           selection.

       Returns:
           true if the selection is accepted, false otherwise

       See also:
           isActive(), begin(), append(), move(), selected(), accept()

       Reimplemented in QwtPlotZoomer, and QwtPlotPicker.

   bool QwtPicker::eventFilter (QObject *o, QEvent *e) [virtual]
       Event filter. When isEnabled() == true all events of the observed widget are filtered.
       Mouse and keyboard events are translated into widgetMouse- and widgetKey- and widgetWheel-
       events. Paint and Resize events are handled to keep rubberband and tracker up to date.

       See also:
           event(), widgetMousePressEvent(), widgetMouseReleaseEvent(),
           widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(),
           widgetKeyPressEvent(), widgetKeyReleaseEvent()

   bool QwtPicker::isActive () const
       A picker is active between begin() and end().

       Returns:
           true if the selection is active.

   bool QwtPicker::isEnabled () const
       Returns:
           true when enabled, false otherwise

       See also:
           setEnabled(), eventFilter()

   void QwtPicker::move (const QPoint &pos) [protected],  [virtual]
       Move the last point of the selection The moved() signal is emitted.

       Parameters:
           pos New position

       See also:
           isActive(), begin(), end(), append()

       Reimplemented in QwtPlotPicker.

   void QwtPicker::moved (const QPoint &pos) [signal]
       A signal emitted whenever the last appended point of the selection has been moved.

       Parameters:
           pos Position of the moved last point of the selection.

       See also:
           move(), appended()

   QRect QwtPicker::pickRect () const [virtual]
       Find the area of the observed widget, where selection might happen.

       Returns:
           QFrame::contentsRect() if it is a QFrame, QWidget::rect() otherwise.

   void QwtPicker::reset () [protected],  [virtual]
       Reset the state machine and terminate (end(false)) the selection

   QwtPicker::ResizeMode QwtPicker::resizeMode () const
       Returns:
           Resize mode

       See also:
           setResizeMode(), ResizeMode

   QwtPicker::RubberBand QwtPicker::rubberBand () const
       Returns:
           Rubberband style

       See also:
           setRubberBand(), RubberBand, rubberBandPen()

   QPen QwtPicker::rubberBandPen () const
       Returns:
           Rubberband pen

       See also:
           setRubberBandPen(), rubberBand()

   const QWidget * QwtPicker::rubberBandWidget () const [protected]
       Returns:
           Widget displaying the rubberband

   void QwtPicker::selected (const QwtPolygon &pa) [signal]
       A signal emitting the selected points, at the end of a selection.

       Parameters:
           pa Selected points

   int QwtPicker::selectionFlags () const
       Returns:
           Selection flags, an Or'd value of SelectionType, RectSelectionType and SelectionMode.

       See also:
           setSelectionFlags(), SelectionType, RectSelectionType, SelectionMode

   void QwtPicker::setEnabled (boolenabled) [virtual]
       En/disable the picker. When enabled is true an event filter is installed for the observed
       widget, otherwise the event filter is removed.

       Parameters:
           enabled true or false

       See also:
           isEnabled(), eventFilter()

   void QwtPicker::setResizeMode (ResizeModemode) [virtual]
       Set the resize mode. The resize mode controls what to do with the selected points of an
       active selection when the observed widget is resized.

       Stretch means the points are scaled according to the new size, KeepSize means the points
       remain unchanged.

       The default mode is Stretch.

       Parameters:
           mode Resize mode

       See also:
           resizeMode(), ResizeMode

   void QwtPicker::setRubberBand (RubberBandrubberBand) [virtual]
       Set the rubberband style

       Parameters:
           rubberBand Rubberband style The default value is NoRubberBand.

       See also:
           rubberBand(), RubberBand, setRubberBandPen()

   void QwtPicker::setRubberBandPen (const QPen &pen) [virtual]
       Set the pen for the rubberband

       Parameters:
           pen Rubberband pen

       See also:
           rubberBandPen(), setRubberBand()

   void QwtPicker::setSelectionFlags (intflags) [virtual]
       Set the selection flags

       Parameters:
           flags Or'd value of SelectionType, RectSelectionType and SelectionMode. The default
           value is NoSelection.

       See also:
           selectionFlags(), SelectionType, RectSelectionType, SelectionMode

       Reimplemented in QwtPlotZoomer.

   void QwtPicker::setTrackerFont (const QFont &font) [virtual]
       Set the font for the tracker

       Parameters:
           font Tracker font

       See also:
           trackerFont(), setTrackerMode(), setTrackerPen()

   void QwtPicker::setTrackerMode (DisplayModemode) [virtual]
       Set the display mode of the tracker. A tracker displays information about current position
       of the cursor as a string. The display mode controls if the tracker has to be displayed
       whenever the observed widget has focus and cursor (AlwaysOn), never (AlwaysOff), or only
       when the selection is active (ActiveOnly).

       Parameters:
           mode Tracker display mode

       Warning:
           In case of AlwaysOn, mouseTracking will be enabled for the observed widget.

       See also:
           trackerMode(), DisplayMode

   void QwtPicker::setTrackerPen (const QPen &pen) [virtual]
       Set the pen for the tracker

       Parameters:
           pen Tracker pen

       See also:
           trackerPen(), setTrackerMode(), setTrackerFont()

   QwtPickerMachine * QwtPicker::stateMachine (intflags) const [protected],  [virtual]
       Create a state machine depending on the selection flags.

       · PointSelection | ClickSelection
          QwtPickerClickPointMachine()

       · PointSelection | DragSelection
          QwtPickerDragPointMachine()

       · RectSelection | ClickSelection
          QwtPickerClickRectMachine()

       · RectSelection | DragSelection
          QwtPickerDragRectMachine()

       · PolygonSelection
          QwtPickerPolygonMachine()

       See also:
           setSelectionFlags()

   void QwtPicker::stretchSelection (const QSize &oldSize, const QSize &newSize) [protected],
       [virtual]
       Scale the selection by the ratios of oldSize and newSize The changed() signal is emitted.

       Parameters:
           oldSize Previous size
           newSize Current size

       See also:
           ResizeMode, setResizeMode(), resizeMode()

   QFont QwtPicker::trackerFont () const
       Returns:
           Tracker font

       See also:
           setTrackerFont(), trackerMode(), trackerPen()

   QwtPicker::DisplayMode QwtPicker::trackerMode () const
       Returns:
           Tracker display mode

       See also:
           setTrackerMode(), DisplayMode

   QPen QwtPicker::trackerPen () const
       Returns:
           Tracker pen

       See also:
           setTrackerPen(), trackerMode(), trackerFont()

   QPoint QwtPicker::trackerPosition () const
       Returns:
           Current position of the tracker

   QRect QwtPicker::trackerRect (const QFont &font) const
       Calculate the bounding rectangle for the tracker text from the current position of the
       tracker

       Parameters:
           font Font of the tracker text

       Returns:
           Bounding rectangle of the tracker text

       See also:
           trackerPosition()

   QwtText QwtPicker::trackerText (const QPoint &pos) const [virtual]
       Return the label for a position. In case of HLineRubberBand the label is the value of the
       y position, in case of VLineRubberBand the value of the x position. Otherwise the label
       contains x and y position separated by a ',' .

       The format for the string conversion is '%d'.

       Parameters:
           pos Position

       Returns:
           Converted position as string

       Reimplemented in QwtPlotPicker.

   const QWidget * QwtPicker::trackerWidget () const [protected]
       Returns:
           Widget displaying the tracker text

   void QwtPicker::transition (const QEvent *e) [protected],  [virtual]
       Passes an event to the state machine and executes the resulting commands. Append and Move
       commands use the current position of the cursor (QCursor::pos()).

       Parameters:
           e Event

   void QwtPicker::widgetKeyPressEvent (QKeyEvent *ke) [protected],  [virtual]
       Handle a key press event for the observed widget.

       Selections can be completely done by the keyboard. The arrow keys move the cursor, the
       abort key aborts a selection. All other keys are handled by the current state machine.

       See also:
           QwtPicker, selectionFlags()

           eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(),
           widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(),
           widgetKeyReleaseEvent(), stateMachine(), QwtEventPattern::KeyPatternCode

       Reimplemented in QwtPlotZoomer.

   void QwtPicker::widgetKeyReleaseEvent (QKeyEvent *ke) [protected],  [virtual]
       Handle a key release event for the observed widget.

       Passes the event to the state machine.

       See also:
           eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(),
           widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetWheelEvent(),
           widgetKeyPressEvent(), stateMachine()

   void QwtPicker::widgetLeaveEvent (QEvent *) [protected],  [virtual]
       Handle a leave event for the observed widget.

       See also:
           eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(),
           widgetMouseDoubleClickEvent(), widgetWheelEvent(), widgetKeyPressEvent(),
           widgetKeyReleaseEvent()

   void QwtPicker::widgetMouseDoubleClickEvent (QMouseEvent *me) [protected],  [virtual]
       Handle mouse double click event for the observed widget.

       Empty implementation, does nothing.

       See also:
           eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(),
           widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(),
           widgetKeyReleaseEvent()

   void QwtPicker::widgetMouseMoveEvent (QMouseEvent *e) [protected],  [virtual]
       Handle a mouse move event for the observed widget.

       Move the last point of the selection in case of isActive() == true

       See also:
           eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(),
           widgetMouseDoubleClickEvent(), widgetWheelEvent(), widgetKeyPressEvent(),
           widgetKeyReleaseEvent()

   void QwtPicker::widgetMousePressEvent (QMouseEvent *e) [protected],  [virtual]
       Handle a mouse press event for the observed widget.

       Begin and/or end a selection depending on the selection flags.

       See also:
           QwtPicker, selectionFlags()

           eventFilter(), widgetMouseReleaseEvent(), widgetMouseDoubleClickEvent(),
           widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(),
           widgetKeyReleaseEvent()

   void QwtPicker::widgetMouseReleaseEvent (QMouseEvent *e) [protected],  [virtual]
       Handle a mouse relase event for the observed widget.

       End a selection depending on the selection flags.

       See also:
           QwtPicker, selectionFlags()

           eventFilter(), widgetMousePressEvent(), widgetMouseDoubleClickEvent(),
           widgetMouseMoveEvent(), widgetWheelEvent(), widgetKeyPressEvent(),
           widgetKeyReleaseEvent()

       Reimplemented in QwtPlotZoomer.

   void QwtPicker::widgetWheelEvent (QWheelEvent *e) [protected],  [virtual]
       Handle a wheel event for the observed widget.

       Move the last point of the selection in case of isActive() == true

       See also:
           eventFilter(), widgetMousePressEvent(), widgetMouseReleaseEvent(),
           widgetMouseDoubleClickEvent(), widgetMouseMoveEvent(), widgetKeyPressEvent(),
           widgetKeyReleaseEvent()

Author

       Generated automatically by Doxygen for Qwt User's Guide from the source code.