QWT API (中文) 7.0.1
Qt绘图库 - 中文API文档
载入中...
搜索中...
未找到
qwt_dial.h
1/******************************************************************************
2 * Qwt Widget Library
3 * Copyright (C) 1997 Josef Wilgen
4 * Copyright (C) 2002 Uwe Rathmann
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the Qwt License, Version 1.0
8 *
9 * Modified by ChenZongYan in 2024 <czy.t@163.com>
10 * Summary of major modifications (see ChangeLog.md for full history):
11 * 1. CMake build system & C++11 throughout.
12 * 2. Core panner/ zoomer refactored:
13 * - QwtPanner → QwtCachePanner (pixmap-cache version)
14 * - New real-time QwtPlotPanner derived from QwtPicker.
15 * 3. Zoomer supports multi-axis.
16 * 4. Parasite-plot framework:
17 * - QwtFigure, QwtPlotParasiteLayout, QwtPlotTransparentCanvas,
18 * - QwtPlotScaleEventDispatcher, built-in pan/zoom on axis.
19 * 5. New picker: QwtPlotSeriesDataPicker (works with date axis).
20 * 6. Raster & color-map extensions:
21 * - QwtGridRasterData (2-D table + interpolation)
22 * - QwtLinearColorMap::stopColors(), stopPos() API rename.
23 * 7. Bar-chart: expose pen/brush control.
24 * 8. Amalgamated build: single QwtPlot.h / QwtPlot.cpp pair in src-amalgamate.
25 *****************************************************************************/
26
27#ifndef QWT_DIAL_H
28#define QWT_DIAL_H
29
30#include "qwt_global.h"
31#include "qwt_abstract_slider.h"
32
33#include <qframe.h>
34#include <qpalette.h>
35
36class QwtDialNeedle;
39
77class QWT_EXPORT QwtDial : public QwtAbstractSlider
78{
79 Q_OBJECT
80
81 Q_ENUMS( Shadow Mode Direction )
82
83 Q_PROPERTY( int lineWidth READ lineWidth WRITE setLineWidth )
84 Q_PROPERTY( Shadow frameShadow READ frameShadow WRITE setFrameShadow )
85 Q_PROPERTY( Mode mode READ mode WRITE setMode )
86 Q_PROPERTY( double origin READ origin WRITE setOrigin )
87 Q_PROPERTY( double minScaleArc READ minScaleArc WRITE setMinScaleArc )
88 Q_PROPERTY( double maxScaleArc READ maxScaleArc WRITE setMaxScaleArc )
89
90 public:
91
107 {
109 Plain = QFrame::Plain,
110
112 Raised = QFrame::Raised,
113
115 Sunken = QFrame::Sunken
116 };
117
126 enum Mode
127 {
130
132 RotateScale
133 };
134
136 explicit QwtDial( QWidget* parent = nullptr );
138 virtual ~QwtDial();
139
141 void setFrameShadow( Shadow );
143 Shadow frameShadow() const;
144
146 void setLineWidth( int );
148 int lineWidth() const;
149
151 void setMode( Mode );
153 Mode mode() const;
154
156 void setScaleArc( double minArc, double maxArc );
157
159 void setMinScaleArc( double );
161 double minScaleArc() const;
162
164 void setMaxScaleArc( double );
166 double maxScaleArc() const;
167
169 virtual void setOrigin( double );
171 double origin() const;
172
174 void setNeedle( QwtDialNeedle* );
176 const QwtDialNeedle* needle() const;
178 QwtDialNeedle* needle();
179
181 QRect boundingRect() const;
183 QRect innerRect() const;
184
186 virtual QRect scaleInnerRect() const;
187
189 virtual QSize sizeHint() const override;
191 virtual QSize minimumSizeHint() const override;
192
194 void setScaleDraw( QwtRoundScaleDraw* );
195
197 QwtRoundScaleDraw* scaleDraw();
199 const QwtRoundScaleDraw* scaleDraw() const;
200
201 protected:
202 virtual void wheelEvent( QWheelEvent* ) override;
203 virtual void paintEvent( QPaintEvent* ) override;
204 virtual void changeEvent( QEvent* ) override;
205
206 virtual void drawFrame( QPainter* );
207 virtual void drawContents( QPainter* ) const;
208 virtual void drawFocusIndicator( QPainter* ) const;
209
210 void invalidateCache();
211
212 virtual void drawScale( QPainter*,
213 const QPointF& center, double radius ) const;
214
215 virtual void drawScaleContents( QPainter* painter,
216 const QPointF& center, double radius ) const;
217
218 virtual void drawNeedle( QPainter*, const QPointF&,
219 double radius, double direction, QPalette::ColorGroup ) const;
220
221 virtual double scrolledTo( const QPoint& ) const override;
222 virtual bool isScrollPosition( const QPoint& ) const override;
223
224 virtual void sliderChange() override;
225 virtual void scaleChange() override;
226
227 private:
228 void setAngleRange( double angle, double span );
229 void drawNeedle( QPainter* ) const;
230
231 class PrivateData;
232 PrivateData* m_data;
233};
234
235#endif
绘制刻度的抽象基类
Definition qwt_abstract_scale_draw.h:55
virtual void changeEvent(QEvent *) override
Handle change events (English only)
Definition qwt_abstract_scale.cpp:670
带刻度的滑块控件的抽象基类
Definition qwt_abstract_slider.h:57
virtual void scaleChange() override
Handle scale changes (English only)
Definition qwt_abstract_slider.cpp:1007
virtual void sliderChange()
Handle slider changes (English only)
Definition qwt_abstract_slider.cpp:1036
virtual void wheelEvent(QWheelEvent *) override
Handle wheel events (English only)
Definition qwt_abstract_slider.cpp:388
virtual bool isScrollPosition(const QPoint &pos) const =0
确定当用户按下鼠标按钮时该做什么
virtual double scrolledTo(const QPoint &pos) const =0
确定滑块可移动部分新位置的值
可用于 QwtDial 的指针基类
Definition qwt_dial_needle.h:50
QwtDial 类提供圆形范围控件
Definition qwt_dial.h:78
Mode
控制指针或刻度是否旋转的模式
Definition qwt_dial.h:127
@ RotateNeedle
The needle is rotating
Definition qwt_dial.h:129
Shadow
框架阴影
Definition qwt_dial.h:107
用于绘制圆形刻度的类
Definition qwt_round_scale_draw.h:58