QWT API (中文) 7.3.0
Qt绘图库 - 中文API文档
载入中...
搜索中...
未找到
| Public 槽 | 信号 | Public 成员函数 | Protected 成员函数 | 所有成员列表
QwtPlotAxisZoomer类 参考

QwtPlotAxisZoomer provides stacked zooming for a plot widget 更多...

#include <qwt_plot_axis_zoomer.h>

类 QwtPlotAxisZoomer 继承关系图:
QwtPlotPicker QwtPicker QwtEventPattern

class  PrivateData
 

Public 槽

void moveBy (double dx, double dy)
 Moves the current zoom rectangle by an offset.
 
virtual void moveTo (const QPointF &)
 Moves the current zoom rectangle.
 
virtual void zoom (const QRectF &)
 Zooms in to a rectangle.
 
virtual void zoom (int offset)
 Zooms in or out by an offset.
 
- Public 槽 继承自 QwtPicker
void setEnabled (bool)
 Enable or disable the picker
 

信号

void zoomed (const QRectF &rect)
 
- 信号 继承自 QwtPlotPicker
void selected (const QPointF &pos)
 Signal emitted in case of QwtPickerMachine::PointSelection
 
void selected (const QRectF &rect)
 Signal emitted in case of QwtPickerMachine::RectSelection
 
void selected (const QVector< QPointF > &pa)
 Signal emitting the selected points at the end of a selection
 
void appended (const QPointF &pos)
 Signal emitted when a point has been appended to the selection
 
void moved (const QPointF &pos)
 Signal emitted whenever the last appended point of the selection has been moved
 
- 信号 继承自 QwtPicker
void activated (bool on)
 Signal indicating when the picker has been activated
 
void selected (const QPolygon &polygon)
 Signal emitting the selected points at the end of a selection
 
void appended (const QPoint &pos)
 Signal emitted when a point has been appended to the selection
 
void moved (const QPoint &pos)
 Signal emitted whenever the last appended point of the selection has been moved
 
void removed (const QPoint &pos)
 Signal emitted whenever the last appended point of the selection has been removed
 
void changed (const QPolygon &selection)
 Signal emitted when the active selection has been changed
 

Public 成员函数

 QwtPlotAxisZoomer (QWidget *, bool doReplot=true)
 Creates a zoomer for a plot canvas.
 
 QwtPlotAxisZoomer (QwtAxisId xAxis, QwtAxisId yAxis, QWidget *, bool doReplot=true)
 Creates a zoomer for a plot canvas with specified axes.
 
virtual void setZoomBase (bool doReplot=true)
 Reinitializes the zoom stack with scaleRect() as base.
 
virtual void setZoomBase (const QRectF &)
 Sets the initial size of the zoomer.
 
QRectF zoomBase () const
 Returns the initial rectangle of the zoomer.
 
QRectF zoomRect () const
 Returns the rectangle at the current position on the zoom stack.
 
virtual void setAxes (QwtAxisId xAxis, QwtAxisId yAxis) override
 Reinitializes the axes, and sets the zoom base to their scales.
 
void setMaxStackDepth (int)
 Limits the number of recursive zoom operations to depth.
 
int maxStackDepth () const
 Returns the maximal depth of the zoom stack.
 
const QStack< QRectF > & zoomStack () const
 Returns the zoom stack.
 
void setZoomStack (const QStack< QRectF > &, int zoomRectIndex=-1)
 Assigns a zoom stack.
 
uint zoomRectIndex () const
 Returns the index of current position of zoom stack.
 
- Public 成员函数 继承自 QwtPlotPicker
 QwtPlotPicker (QWidget *canvas)
 Constructor
 
 ~QwtPlotPicker () override
 Destructor
 
 QwtPlotPicker (QwtAxisId xAxisId, QwtAxisId yAxisId, QWidget *)
 Constructor with axes
 
 QwtPlotPicker (QwtAxisId xAxisId, QwtAxisId yAxisId, RubberBand rubberBand, DisplayMode trackerMode, QWidget *)
 Constructor with axes, rubber band and tracker mode
 
QwtAxisId xAxis () const
 Get the x axis
 
QwtAxisId yAxis () const
 Get the y axis
 
QwtPlotplot ()
 Get the plot widget
 
const QwtPlotplot () const
 Get the plot widget (const version)
 
QWidget * canvas ()
 Get the canvas widget
 
const QWidget * canvas () const
 Get the canvas widget (const version)
 
- Public 成员函数 继承自 QwtPicker
 QwtPicker (QWidget *parent)
 Constructor
 
 QwtPicker (RubberBand rubberBand, DisplayMode trackerMode, QWidget *)
 
void setStateMachine (QwtPickerMachine *)
 Set a state machine and delete the previous one
 
const QwtPickerMachinestateMachine () const
 Return the assigned state machine (const)
 
QwtPickerMachinestateMachine ()
 Return the assigned state machine
 
void setRubberBand (RubberBand)
 Set the rubber band style
 
RubberBand rubberBand () const
 Return the rubber band style
 
void setTrackerMode (DisplayMode)
 Set the display mode of the tracker
 
DisplayMode trackerMode () const
 Return the tracker display mode
 
void setResizeMode (ResizeMode)
 Set the resize mode
 
ResizeMode resizeMode () const
 Return the resize mode
 
void setRubberBandPen (const QPen &)
 Set the pen for the rubber band
 
QPen rubberBandPen () const
 Return the rubber band pen
 
void setTrackerPen (const QPen &)
 Set the pen for the tracker
 
QPen trackerPen () const
 Return the tracker pen
 
void setTrackerFont (const QFont &)
 Set the font for the tracker
 
QFont trackerFont () const
 Return the tracker font
 
bool isEnabled () const
 Return true when enabled, false otherwise
 
bool isActive () const
 A picker is active between begin() and end()
 
virtual bool eventFilter (QObject *, QEvent *) override
 Event filter for handling events
 
QWidget * parentWidget ()
 Return the parent widget, where the selection happens
 
const QWidget * parentWidget () const
 Return the parent widget, where the selection happens (const)
 
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 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)
 Set the tracker position manually
 
QPoint trackerPosition () const
 Return the current position of the tracker
 
QPolygon selection () const
 Return the selected points
 
void update ()
 
void setActive (bool on)
 
- Public 成员函数 继承自 QwtEventPattern
 QwtEventPattern ()
 Constructor
 
virtual ~QwtEventPattern ()
 Destructor
 
void initMousePattern (int numButtons)
 Set default mouse patterns depending on the number of mouse buttons
 
void initKeyPattern ()
 Set default key 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
 Return the mouse pattern vector
 
const QVector< KeyPattern > & keyPattern () const
 Return the key pattern vector
 
QVector< MousePattern > & mousePattern ()
 Return the mouse pattern vector
 
QVector< KeyPattern > & keyPattern ()
 Return the key pattern vector
 
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
 

Protected 成员函数

virtual void rescale ()
 Rescale the plot
 
virtual QSizeF minZoomSize () const
 Get minimum zoom size
 
virtual void widgetMouseReleaseEvent (QMouseEvent *) override
 Handle mouse release event
 
virtual void widgetKeyPressEvent (QKeyEvent *) override
 Handle key press event
 
virtual void begin () override
 Begin selection
 
virtual bool end (bool ok=true) override
 End selection
 
virtual bool accept (QPolygon &) const override
 Accept selection
 
- Protected 成员函数 继承自 QwtPlotPicker
QRectF scaleRect () const
 Get the scale rectangle
 
QRectF invTransform (const QRect &) const
 Inverse transform a rectangle
 
QRect transform (const QRectF &) const
 Transform a rectangle
 
QPointF invTransform (const QPoint &) const
 Inverse transform a point
 
QPoint transform (const QPointF &) const
 Transform a point
 
virtual QwtText trackerText (const QPoint &) const override
 Get the tracker text for a point
 
virtual QwtText trackerTextF (const QPointF &) const
 Get the tracker text for a point (floating point)
 
virtual void move (const QPoint &) override
 Move the selection
 
virtual void append (const QPoint &) override
 Append a point to the selection
 
- Protected 成员函数 继承自 QwtPicker
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 remove ()
 Remove the last point of the selection The removed() signal is emitted.
 
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 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 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 QwtWidgetOverlayrubberBandOverlay () const
 Return the overlay displaying the rubber band
 
const QwtWidgetOverlaytrackerOverlay () const
 Return the overlay displaying the tracker text
 
const QPolygon & pickedPoints () const
 Return the points that have been collected so far
 
- Protected 成员函数 继承自 QwtEventPattern
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.
 

额外继承的成员函数

- Public 类型 继承自 QwtPicker
enum  RubberBand {
  NoRubberBand = 0 , HLineRubberBand , VLineRubberBand , CrossRubberBand ,
  RectRubberBand , EllipseRubberBand , PolygonRubberBand , UserRubberBand = 100
}
 Rubber band style 更多...
 
enum  DisplayMode { AlwaysOff , AlwaysOn , ActiveOnly }
 Display mode 更多...
 
enum  ResizeMode { Stretch , KeepSize }
 Controls what to do with the selected points when the observed widget is resized 更多...
 
- Public 类型 继承自 QwtEventPattern
enum  MousePatternCode {
  MouseSelect1 , MouseSelect2 , MouseSelect3 , MouseSelect4 ,
  MouseSelect5 , MouseSelect6 , MousePatternCount
}
 Symbolic mouse input codes 更多...
 
enum  KeyPatternCode {
  KeySelect1 , KeySelect2 , KeyAbort , KeyLeft ,
  KeyRight , KeyUp , KeyDown , KeyRedo ,
  KeyUndo , KeyHome , KeyPatternCount
}
 Symbolic keyboard input codes 更多...
 
- 属性 继承自 QwtPicker
bool isEnabled
 
ResizeMode resizeMode
 
DisplayMode trackerMode
 
QPen trackerPen
 
QFont trackerFont
 
RubberBand rubberBand
 
QPen rubberBandPen
 

详细描述

QwtPlotAxisZoomer provides stacked zooming for a plot widget

QwtPlotAxisZoomer selects rectangles from user inputs ( mouse or keyboard ) translates them into plot coordinates and adjusts the axes to them. The selection is supported by a rubber band and optionally by displaying the coordinates of the current mouse position.

Zooming can be repeated as often as possible, limited only by maxStackDepth() or minZoomSize(). Each rectangle is pushed on a stack.

The default setting how to select rectangles is a QwtPickerDragRectMachine with the following bindings:

To traverse the zoom stack the following bindings are used:

The setKeyPattern() and setMousePattern() functions can be used to configure the zoomer actions. The following example shows, how to configure the 'I' and 'O' keys for zooming in and out one position on the zoom stack. The "Home" key is used to "unzoom" the plot.

zoomer = new QwtPlotAxisZoomer( plot );
zoomer->setKeyPattern( QwtEventPattern::KeyRedo, Qt::Key_I, Qt::ShiftModifier );
zoomer->setKeyPattern( QwtEventPattern::KeyUndo, Qt::Key_O, Qt::ShiftModifier );
zoomer->setKeyPattern( QwtEventPattern::KeyHome, Qt::Key_Home );
@ KeyRedo
Qt::Key_Plus
Definition qwt_event_pattern.h:151
@ KeyHome
Qt::Key_Escape
Definition qwt_event_pattern.h:157
@ KeyUndo
Qt::Key_Minus
Definition qwt_event_pattern.h:154
QwtPlotAxisZoomer provides stacked zooming for a plot widget
Definition qwt_plot_axis_zoomer.h:96
QwtPlot * plot()
Get the plot widget
Definition qwt_plot_picker.cpp:120

QwtPlotAxisZoomer is tailored for plots with one x and y axis, but it is allowed to attach a second QwtPlotAxisZoomer ( without rubber band and tracker ) for the other axes.

注解
The realtime example includes an derived zoomer class that adds scrollbars to the plot canvas.
参见
QwtPlotPanner, QwtPlotMagnifier

构造及析构函数说明

◆ QwtPlotAxisZoomer() [1/2]

QwtPlotAxisZoomer::QwtPlotAxisZoomer ( QWidget *  canvas,
bool  doReplot = true 
)
explicit

Creates a zoomer for a plot canvas.

The zoomer is set to those x- and y-axis of the parent plot of the canvas that are enabled. If both or no x-axis are enabled, the picker is set to QwtAxis::XBottom. If both or no y-axis are enabled, it is set to QwtAxis::YLeft.

The zoomer is initialized with a QwtPickerDragRectMachine, the tracker mode is set to QwtPicker::ActiveOnly and the rubber band is set to QwtPicker::RectRubberBand.

参数
[in]canvasPlot canvas to observe, also the parent object.
[in]doReplotCall QwtPlot::replot() for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes.
参见
QwtPlot::autoReplot(), QwtPlot::replot(), setZoomBase()

◆ QwtPlotAxisZoomer() [2/2]

QwtPlotAxisZoomer::QwtPlotAxisZoomer ( QwtAxisId  xAxisId,
QwtAxisId  yAxisId,
QWidget *  canvas,
bool  doReplot = true 
)
explicit

Creates a zoomer for a plot canvas with specified axes.

The zoomer is initialized with a QwtPickerDragRectMachine, the tracker mode is set to QwtPicker::ActiveOnly and the rubber band is set to QwtPicker::RectRubberBand.

参数
[in]xAxisIdX axis of the zoomer.
[in]yAxisIdY axis of the zoomer.
[in]canvasPlot canvas to observe, also the parent object.
[in]doReplotCall QwtPlot::replot() for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes.
参见
QwtPlot::autoReplot(), QwtPlot::replot(), setZoomBase()

成员函数说明

◆ accept()

bool QwtPlotAxisZoomer::accept ( QPolygon &  pa) const
overrideprotectedvirtual

Accept selection

Check and correct a selected rectangle

Reject rectangles with a height or width < 2, otherwise expand the selected rectangle to a minimum size of 11x11 and accept it.

返回
true If the rectangle is accepted, or has been changed to an accepted one.

重载 QwtPicker .

◆ begin()

void QwtPlotAxisZoomer::begin ( )
overrideprotectedvirtual

Begin selection

Rejects selections, when the stack depth is too deep, or the zoomed rectangle is minZoomSize().

参见
minZoomSize(), maxStackDepth()

重载 QwtPicker .

◆ end()

bool QwtPlotAxisZoomer::end ( bool  ok = true)
overrideprotectedvirtual

End selection

Expand the selected rectangle to minZoomSize() and zoom in if accepted.

参数
okIf true, complete the selection and emit selected signals otherwise discard the selection.
参见
accept(), minZoomSize()
返回
True if the selection has been accepted, false otherwise

重载 QwtPlotPicker .

◆ maxStackDepth()

int QwtPlotAxisZoomer::maxStackDepth ( ) const

Returns the maximal depth of the zoom stack.

返回
Maximal depth of the zoom stack.
参见
setMaxStackDepth()

◆ minZoomSize()

QSizeF QwtPlotAxisZoomer::minZoomSize ( ) const
protectedvirtual

Get minimum zoom size

Limit zooming by a minimum rectangle

返回
zoomBase().width() / 10e4, zoomBase().height() / 10e4

◆ moveBy

void QwtPlotAxisZoomer::moveBy ( double  dx,
double  dy 
)
slot

Moves the current zoom rectangle by an offset.

参数
[in]dxX offset.
[in]dyY offset.
注解
The changed rectangle is limited by the zoom base.

◆ moveTo

void QwtPlotAxisZoomer::moveTo ( const QPointF &  pos)
virtualslot

Moves the current zoom rectangle.

参数
[in]posNew position.
参见
QRectF::moveTo()
注解
The changed rectangle is limited by the zoom base.

◆ rescale()

void QwtPlotAxisZoomer::rescale ( )
protectedvirtual

Rescale the plot

Adjust the observed plot to zoomRect()

注解
Initiates QwtPlot::replot()

◆ setAxes()

void QwtPlotAxisZoomer::setAxes ( QwtAxisId  xAxisId,
QwtAxisId  yAxisId 
)
overridevirtual

Reinitializes the axes, and sets the zoom base to their scales.

参数
[in]xAxisIdX axis.
[in]yAxisIdY axis.

重载 QwtPlotPicker .

◆ setMaxStackDepth()

void QwtPlotAxisZoomer::setMaxStackDepth ( int  depth)

Limits the number of recursive zoom operations to depth.

A value of -1 sets the depth to unlimited, 0 disables zooming. If the current zoom rectangle is below depth, the plot is unzoomed.

参数
[in]depthMaximum for the stack depth.
参见
maxStackDepth()
注解
depth doesn't include the zoom base, so zoomStack().count() might be maxStackDepth() + 1.

◆ setZoomBase() [1/2]

void QwtPlotAxisZoomer::setZoomBase ( bool  doReplot = true)
virtual

Reinitializes the zoom stack with scaleRect() as base.

参数
[in]doReplotCall QwtPlot::replot() for the attached plot before initializing the zoomer with its scales. This might be necessary, when the plot is in a state with pending scale changes.
参见
zoomBase(), scaleRect(), QwtPlot::autoReplot(), QwtPlot::replot()

◆ setZoomBase() [2/2]

void QwtPlotAxisZoomer::setZoomBase ( const QRectF &  base)
virtual

Sets the initial size of the zoomer.

base is united with the current scaleRect() and the zoom stack is reinitialized with it as zoom base. plot is zoomed to scaleRect().

参数
[in]baseZoom base rectangle.
参见
zoomBase(), scaleRect()

◆ setZoomStack()

void QwtPlotAxisZoomer::setZoomStack ( const QStack< QRectF > &  zoomStack,
int  zoomRectIndex = -1 
)

Assigns a zoom stack.

In combination with other types of navigation it might be useful to modify to manipulate the complete zoom stack.

参数
[in]zoomStackNew zoom stack.
[in]zoomRectIndexIndex of the current position of zoom stack. In case of -1 the current position is at the top of the stack.
注解
The zoomed signal might be emitted.
参见
zoomStack(), zoomRectIndex()

◆ widgetKeyPressEvent()

void QwtPlotAxisZoomer::widgetKeyPressEvent ( QKeyEvent *  ke)
overrideprotectedvirtual

Handle key press event

Qt::Key_Plus zooms in, Qt::Key_Minus zooms out one position on the zoom stack, Qt::Key_Escape zooms out to the zoom base.

Changes the current position on the stack, but doesn't pop any rectangle.

注解
The keys codes can be changed, using QwtEventPattern::setKeyPattern: 3, 4, 5

重载 QwtPicker .

◆ widgetMouseReleaseEvent()

void QwtPlotAxisZoomer::widgetMouseReleaseEvent ( QMouseEvent *  me)
overrideprotectedvirtual

Handle mouse release event

Qt::MidButton zooms out one position on the zoom stack, Qt::RightButton to the zoom base.

Changes the current position on the stack, but doesn't pop any rectangle.

注解
The mouse events can be changed, using QwtEventPattern::setMousePattern: 2, 1

重载 QwtPicker .

◆ zoom [1/2]

void QwtPlotAxisZoomer::zoom ( const QRectF &  rect)
virtualslot

Zooms in to a rectangle.

Clears all rectangles above the current position of the zoom stack and pushes the normalized rectangle on it.

参数
[in]rectRectangle to zoom to.
注解
If the maximal stack depth is reached, zoom is ignored.
The zoomed signal is emitted.

◆ zoom [2/2]

void QwtPlotAxisZoomer::zoom ( int  offset)
virtualslot

Zooms in or out by an offset.

Activates a rectangle on the zoom stack with an offset relative to the current position. Negative values of offset will zoom out, positive zoom in. A value of 0 zooms out to the zoom base.

参数
[in]offsetOffset relative to the current position of the zoom stack.
注解
The zoomed signal is emitted.
参见
zoomRectIndex()

◆ zoomBase()

QRectF QwtPlotAxisZoomer::zoomBase ( ) const

Returns the initial rectangle of the zoomer.

返回
Initial rectangle of the zoomer.
参见
setZoomBase(), zoomRect()

◆ zoomed

void QwtPlotAxisZoomer::zoomed ( const QRectF &  rect)
signal

A signal emitting the zoomRect(), when the plot has been zoomed in or out.

参数
rectCurrent zoom rectangle.

◆ zoomRect()

QRectF QwtPlotAxisZoomer::zoomRect ( ) const

Returns the rectangle at the current position on the zoom stack.

返回
Rectangle at the current position on the zoom stack.
参见
zoomRectIndex(), scaleRect()

◆ zoomRectIndex()

uint QwtPlotAxisZoomer::zoomRectIndex ( ) const

Returns the index of current position of zoom stack.

返回
Index of current position of zoom stack.

◆ zoomStack()

const QStack< QRectF > & QwtPlotAxisZoomer::zoomStack ( ) const

Returns the zoom stack.

返回
The zoom stack. zoomStack()[0] is the zoom base, zoomStack()[1] the first zoomed rectangle.
参见
setZoomStack(), zoomRectIndex()

该类的文档由以下文件生成: