QWT API (中文) 7.3.0
Qt绘图库 - 中文API文档
载入中...
搜索中...
未找到
qwt_scale_widget.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_SCALE_WIDGET_H
28#define QWT_SCALE_WIDGET_H
29
30#include "qwt_global.h"
31#include "qwt_text.h"
32#include "qwt_scale_draw.h"
33#include "qwt_axis_id.h"
34#include "qwt_scale_div.h"
35
36#include <qwidget.h>
37#include <qfont.h>
38#include <qcolor.h>
39#include <qstring.h>
40// Qt
41class QPainter;
42class QEvent;
43class QPaintEvent;
44class QResizeEvent;
45class QMouseEvent;
46class QWheelEvent;
47// Qwt
48class QwtTransform;
49class QwtColorMap;
50
72class QWT_EXPORT QwtScaleWidget : public QWidget
73{
74 Q_OBJECT
75 QWT_DECLARE_PRIVATE(QwtScaleWidget)
76public:
79 {
81 TitleInverted = 1
82 };
83
84 Q_DECLARE_FLAGS(LayoutFlags, LayoutFlag)
85
86
102 {
104 TitleCentered = 0,
108 TitleAtEnd
109 };
110
134 {
136 TitleInside = 0,
138 TitleOutside
139 };
140
145 {
147 ActionNone = 0x00,
149 ActionWheelZoom = 0x01,
151 ActionClickPan = 0x02,
153 ActionAll = 0xFF
154 };
155 Q_DECLARE_FLAGS(BuiltinActionsFlags, BuiltinActions)
156public:
158 explicit QwtScaleWidget(QWidget* parent = nullptr);
160 explicit QwtScaleWidget(QwtScaleDraw::Alignment, QWidget* parent = nullptr);
162 ~QwtScaleWidget() override;
163
164Q_SIGNALS:
165
170
179 void requestScaleRangeUpdate(double min, double max);
180
185 void selectionChanged(bool selected);
186
187public:
189 void setTitle(const QString& title);
191 void setTitle(const QwtText& title);
193 QwtText title() const;
194
196 void setTitlePosition(TitlePosition);
198 TitlePosition titlePosition() const;
199
201 void setTitlePlacement(TitlePlacement);
203 TitlePlacement titlePlacement() const;
204
206 void setTitleAlignment(Qt::Alignment);
208 Qt::Alignment titleAlignment() const;
209
211 void setLayoutFlag(LayoutFlag, bool on);
213 bool testLayoutFlag(LayoutFlag) const;
214
216 void setBorderDist(int dist1, int dist2);
218 int startBorderDist() const;
220 int endBorderDist() const;
221
223 void getBorderDistHint(int& start, int& end) const;
224
226 void setCornerExtension(int start, int end);
227
229 void getMinBorderDist(int& start, int& end) const;
231 void setMinBorderDist(int start, int end);
233 int startMinBorderDist() const;
235 int endMinBorderDist() const;
236
238 void setMargin(int);
240 int margin() const;
241
243 void setSpacing(int);
245 int spacing() const;
246
248 void setEdgeMargin(int offset);
250 int edgeMargin() const;
251
253 void setScaleDiv(const QwtScaleDiv&);
255 void setTransformation(QwtTransform*);
256
258 void setScaleDraw(QwtScaleDraw*);
260 const QwtScaleDraw* scaleDraw() const;
262 QwtScaleDraw* scaleDraw();
263
265 void setLabelAlignment(Qt::Alignment);
267 void setLabelRotation(double rotation);
268
270 void setColorBarEnabled(bool);
272 bool isColorBarEnabled() const;
273
275 void setColorBarWidth(int);
277 int colorBarWidth() const;
278
280 void setColorMap(const QwtInterval&, QwtColorMap*);
281
283 QwtInterval colorBarInterval() const;
285 const QwtColorMap* colorMap() const;
286
287 virtual QSize sizeHint() const override;
288 virtual QSize minimumSizeHint() const override;
289
291 int titleHeightForWidth(int width) const;
293 int dimForLength(int length, const QFont& scaleFont) const;
294
296 void drawColorBar(QPainter*, const QRectF&) const;
298 void drawTitle(QPainter*, QwtScaleDraw::Alignment, const QRectF& rect) const;
299
301 void setAlignment(QwtScaleDraw::Alignment);
303 QwtScaleDraw::Alignment alignment() const;
304
306 QRectF colorBarRect(const QRectF&) const;
307
309 QRect scaleRect() const;
311 void setTextColor(const QColor& c);
313 QColor textColor() const;
314
316 void setScaleColor(const QColor& c);
318 QColor scaleColor() const;
319
321 void layoutScale(bool update_geometry = true);
322
324 QwtAxisId axisID() const;
326 bool isXAxis() const;
328 bool isYAxis() const;
329 //===============================================
330 // Built-in action methods
331 //===============================================
332
334 void setBuildinActions(BuiltinActionsFlags acts);
336 BuiltinActionsFlags buildinActions() const;
338 bool testBuildinActions(BuiltinActions ba) const;
339
341 void setSelected(bool selected);
343 bool isSelected() const;
344
346 void setSelectionColor(const QColor& color);
348 QColor selectionColor() const;
349
351 void setZoomFactor(double factor);
353 double zoomFactor() const;
354
356 void setSelectedPenWidthOffset(qreal offset = 1);
358 qreal selectedPenWidthOffset() const;
359
361 bool isOnScale(const QPoint& pos) const;
362
363protected:
364 virtual void paintEvent(QPaintEvent*) override;
365 virtual void resizeEvent(QResizeEvent*) override;
366 virtual void changeEvent(QEvent*) override;
367
368 void draw(QPainter*) const;
369
370 void scaleChange();
371
372private:
373 void initScale(QwtScaleDraw::Alignment);
375 QRect scaleContentsRect() const;
376};
377
378Q_DECLARE_OPERATORS_FOR_FLAGS(QwtScaleWidget::LayoutFlags)
379
380#endif
QwtColorMap is used to map values into colors.
Definition qwt_colormap.h:33
A class representing an interval
Definition qwt_interval.h:39
A class representing a scale division
Definition qwt_scale_div.h:47
A class for drawing scales
Definition qwt_scale_draw.h:52
Alignment
Alignment of the scale draw
Definition qwt_scale_draw.h:59
A Widget which contains a scale
Definition qwt_scale_widget.h:73
void scaleDivChanged()
Signal emitted whenever the scale division changes
~QwtScaleWidget() override
Destructor
void requestScaleRangeUpdate(double min, double max)
Request to change the axis scale division
LayoutFlag
Layout flags of the title
Definition qwt_scale_widget.h:79
TitlePlacement
Placement of the axis title relative to the scale widget
Definition qwt_scale_widget.h:134
BuiltinActions
Built-in actions
Definition qwt_scale_widget.h:145
void selectionChanged(bool selected)
Signal emitted when the axis selection state changes
QwtScaleWidget(QwtScaleDraw::Alignment, QWidget *parent=nullptr)
Constructor with alignment
TitlePosition
Position of the axis title along the backbone
Definition qwt_scale_widget.h:102
@ TitleAtStart
At the backbone start end: bottom for vertical axes, left for horizontal axes.
Definition qwt_scale_widget.h:106
A class representing a text
Definition qwt_text.h:70
A transformation between coordinate systems
Definition qwt_transform.h:47