|
| void | activated (bool on) |
| | A signal indicating, when the picker has been activated.
|
| |
| void | selected (const QPolygon &polygon) |
| | A signal emitting the selected points, at the end of a selection.
|
| |
| void | appended (const QPoint &pos) |
| | A signal emitted when a point has been appended to the selection.
|
| |
| void | moved (const QPoint &pos) |
| | A signal emitted whenever the last appended point of the selection has been moved.
|
| |
| void | removed (const QPoint &pos) |
| | A signal emitted whenever the last appended point of the selection has been removed.
|
| |
| void | changed (const QPolygon &selection) |
| | A signal emitted when the active selection has been changed.
|
| |
|
| | QwtPicker (QWidget *parent) |
| | Constructor.
|
| |
| | QwtPicker (RubberBand rubberBand, DisplayMode trackerMode, QWidget *) |
| | Constructor.
|
| |
|
virtual | ~QwtPicker () |
| | Destructor.
|
| |
| void | setStateMachine (QwtPickerMachine *) |
| | Set a state machine and delete the previous one.
|
| |
| const QwtPickerMachine * | stateMachine () const |
| |
| QwtPickerMachine * | stateMachine () |
| |
| void | setRubberBand (RubberBand) |
| | Set the rubber band style.
|
| |
| RubberBand | rubberBand () const |
| |
| void | setTrackerMode (DisplayMode) |
| | Set the display mode of the tracker.
|
| |
| DisplayMode | trackerMode () const |
| |
| void | setResizeMode (ResizeMode) |
| | Set the resize mode.
|
| |
| ResizeMode | resizeMode () const |
| |
| void | setRubberBandPen (const QPen &) |
| | Set the pen for the rubberband.
|
| |
| QPen | rubberBandPen () const |
| |
| void | setTrackerPen (const QPen &) |
| | Set the pen for the tracker.
|
| |
| QPen | trackerPen () const |
| |
| void | setTrackerFont (const QFont &) |
| | Set the font for the tracker.
|
| |
| QFont | trackerFont () const |
| |
| bool | isEnabled () const |
| |
| bool | isActive () const |
| | A picker is active between begin() and end().
|
| |
| virtual bool | eventFilter (QObject *, QEvent *) QWT_OVERRIDE |
| | Event filter.
|
| |
|
QWidget * | parentWidget () |
| | Return the parent widget, where the selection happens.
|
| |
|
const QWidget * | parentWidget () const |
| | Return the parent widget, where the selection happens.
|
| |
| virtual QPainterPath | pickArea () const |
| | Find the area of the observed widget, where selection might happen.
|
| |
| virtual void | drawRubberBand (QPainter *) const |
| | Draw a rubber band, depending on rubberBand()
|
| |
| virtual void | drawTracker (QPainter *) const |
| | Draw the tracker.
|
| |
| virtual QRegion | trackerMask () const |
| | Calculate the mask for the tracker overlay.
|
| |
| virtual QRegion | rubberBandMask () const |
| | Calculate the mask for the rubber band overlay.
|
| |
| virtual QwtText | trackerText (const QPoint &pos) const |
| | Return the label for a position.
|
| |
| virtual QRect | trackerRect (const QFont &) const |
| | Calculate the bounding rectangle for the tracker text from the current position of the tracker.
|
| |
| virtual void | setTrackerPosition (const QPoint &pos) |
| | 强制设置trackerPosition,正常这个不需要调用,但有时候没有鼠标也想显示picker可以通过此函数来设置
|
| |
| QPoint | trackerPosition () const |
| |
| QPolygon | selection () const |
| |
|
void | update () |
| |
|
void | setActive (bool on) |
| |
| | QwtEventPattern () |
| | Constructor.
|
| |
|
virtual | ~QwtEventPattern () |
| | Destructor.
|
| |
| void | initMousePattern (int numButtons) |
| | Set default mouse patterns, depending on the number of mouse buttons.
|
| |
| void | initKeyPattern () |
| | Set default mouse patterns.
|
| |
| void | setMousePattern (MousePatternCode, Qt::MouseButton button, Qt::KeyboardModifiers=Qt::NoModifier) |
| | Change one mouse pattern.
|
| |
| void | setKeyPattern (KeyPatternCode, int key, Qt::KeyboardModifiers modifiers=Qt::NoModifier) |
| | Change one key pattern.
|
| |
|
void | setMousePattern (const QVector< MousePattern > &) |
| | Change the mouse event patterns.
|
| |
|
void | setKeyPattern (const QVector< KeyPattern > &) |
| | Change the key event patterns.
|
| |
| const QVector< MousePattern > & | mousePattern () const |
| |
| const QVector< KeyPattern > & | keyPattern () const |
| |
| QVector< MousePattern > & | mousePattern () |
| |
| QVector< KeyPattern > & | keyPattern () |
| |
| bool | mouseMatch (MousePatternCode, const QMouseEvent *) const |
| | Compare a mouse event with an event pattern.
|
| |
| bool | keyMatch (KeyPatternCode, const QKeyEvent *) const |
| | Compare a key event with an event pattern.
|
| |
|
| virtual QPolygon | adjustedPoints (const QPolygon &) const |
| | Map the pickedPoints() into a selection()
|
| |
| virtual void | transition (const QEvent *) |
| | Passes an event to the state machine and executes the resulting commands.
|
| |
| virtual void | begin () |
| | Open a selection setting the state to active.
|
| |
| virtual void | append (const QPoint &) |
| | Append a point to the selection and update rubber band and tracker.
|
| |
| virtual void | move (const QPoint &) |
| | Move the last point of the selection The moved() signal is emitted.
|
| |
| virtual void | remove () |
| | Remove the last point of the selection The removed() signal is emitted.
|
| |
| virtual bool | end (bool ok=true) |
| | Close a selection setting the state to inactive.
|
| |
| virtual bool | accept (QPolygon &) const |
| | Validate and fix up the selection.
|
| |
|
virtual void | reset () |
| | Reset the state machine and terminate ( end(false) ) the selection.
|
| |
| virtual void | widgetMousePressEvent (QMouseEvent *) |
| | Handle a mouse press event for the observed widget.
|
| |
| virtual void | widgetMouseReleaseEvent (QMouseEvent *) |
| | Handle a mouse release event for the observed widget.
|
| |
| virtual void | widgetMouseDoubleClickEvent (QMouseEvent *) |
| | Handle mouse double click event for the observed widget.
|
| |
| virtual void | widgetMouseMoveEvent (QMouseEvent *) |
| | Handle a mouse move event for the observed widget.
|
| |
| virtual void | widgetWheelEvent (QWheelEvent *) |
| | Handle a wheel event for the observed widget.
|
| |
| virtual void | widgetKeyPressEvent (QKeyEvent *) |
| | Handle a key press event for the observed widget.
|
| |
| virtual void | widgetKeyReleaseEvent (QKeyEvent *) |
| | Handle a key release event for the observed widget.
|
| |
| virtual void | widgetEnterEvent (QEvent *) |
| | Handle a enter event for the observed widget.
|
| |
| virtual void | widgetLeaveEvent (QEvent *) |
| | Handle a leave event for the observed widget.
|
| |
| virtual void | stretchSelection (const QSize &oldSize, const QSize &newSize) |
| | Scale the selection by the ratios of oldSize and newSize The changed() signal is emitted.
|
| |
|
virtual void | updateDisplay () |
| | Update the state of rubber band and tracker label.
|
| |
| const QwtWidgetOverlay * | rubberBandOverlay () const |
| |
| const QwtWidgetOverlay * | trackerOverlay () const |
| |
| const QPolygon & | pickedPoints () const |
| | Return the points, that have been collected so far.
|
| |
| virtual bool | mouseMatch (const MousePattern &, const QMouseEvent *) const |
| | Compare a mouse event with an event pattern.
|
| |
| virtual bool | keyMatch (const KeyPattern &, const QKeyEvent *) const |
| | Compare a key event with an event pattern.
|
| |
QwtPicker provides selections on a widget / QwtPicker 在一个部件(widget)上提供选择功能
QwtPicker filters all enter, leave, mouse and keyboard events of a widget and translates them into an array of selected points.
The way how the points are collected depends on type of state machine that is connected to the picker. Qwt offers a couple of predefined state machines for selecting:
While these state machines cover the most common ways to collect points it is also possible to implement individual machines as well.
QwtPicker translates the picked points into a selection using the adjustedPoints() method. adjustedPoints() is intended to be reimplemented to fix up the selection according to application specific requirements. (F.e. when an application accepts rectangles of a fixed aspect ratio only.)
Optionally QwtPicker support the process of collecting points by a rubber band and tracker displaying a text for the current mouse position.
QwtPicker 会过滤一个部件(widget)的所有进入、离开、鼠标和键盘事件,并将它们转换为一个选定坐标点的数组。
收集点的方式取决于连接到选择器(picker)的状态机(state machine)类型。Qwt 提供了几个预定义的选择状态机:
虽然这些状态机涵盖了最常见的点收集方式,但也可以实现自定义的状态机。
QwtPicker 使用 adjustedPoints() 方法将拾取的点转换为一个选择区域/集合。adjustedPoints() 方法旨在被重写, 以便根据应用程序的特定要求修正选择结果。(例如:当应用程序只接受固定宽高比的矩形时。)
QwtPicker 可以选择性地通过一个橡皮筋(rubber band)和一个显示当前鼠标位置文本的追踪器(tracker)来辅助点的收集过程。
- Example
#include <qwt_picker.h>
#include <qwt_picker_machine.h>
A state machine for rectangle selections.
Definition qwt_picker_machine.h:179
QwtPicker provides selections on a widget / QwtPicker 在一个部件(widget)上提供选择功能
Definition qwt_picker.h:151
@ ActiveOnly
Display only when the selection is active.
Definition qwt_picker.h:217
void setStateMachine(QwtPickerMachine *)
Set a state machine and delete the previous one.
Definition qwt_picker.cpp:232
void setRubberBand(RubberBand)
Set the rubber band style.
Definition qwt_picker.cpp:291
void setTrackerMode(DisplayMode)
Set the display mode of the tracker.
Definition qwt_picker.cpp:321
@ RectRubberBand
A rectangle ( only for QwtPickerMachine::RectSelection )
Definition qwt_picker.h:189
The state machine triggers the following commands:
状态机会触发以下命令:
- begin()
Activate/Initialize the selection. / 激活/初始化选择。
- append()
Add a new point / 添加一个新点。
- move()
Change the position of the last point. / 改变最后一个点的位置。
- remove()
Remove the last point. / 移除最后一个点。
- end()
Terminate the selection and call accept to validate the picked points. / 终止选择,并调用 accept 来验证拾取的点。
The picker is active (isActive()), between begin() and end(). In active state the rubber band is displayed, and the tracker is visible in case of trackerMode is ActiveOnly or AlwaysOn.
在 begin() 和 end() 之间,选择器处于活动状态(isActive())。 在活动状态下,橡皮筋会显示。如果追踪器模式(trackerMode)是 ActiveOnly 或 AlwaysOn,追踪器也会可见。
The cursor can be moved using the arrow keys. All selections can be aborted using the abort key. (QwtEventPattern::KeyPatternCode)
可以使用方向键移动光标。所有选择都可以使用取消键(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 while the picker is active, or if trackerMode() is AlwayOn./ 如果观察的部件(widget)的焦点策略是 QWidget::NoFocus, 那么在选择器处于活动状态时,或者如果 trackerMode() 是 AlwaysOn 时, 该部件的焦点策略会被设置为 QWidget::WheelFocus,并且鼠标追踪(mouse tracking)会被操控。