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
90 {
92 ActionNone = 0x00,
94 ActionWheelZoom = 0x01,
96 ActionClickPan = 0x02,
98 ActionAll = 0xFF
99 };
100 Q_DECLARE_FLAGS(BuiltinActionsFlags, BuiltinActions)
101public:
103 explicit QwtScaleWidget(QWidget* parent = nullptr);
105 explicit QwtScaleWidget(QwtScaleDraw::Alignment, QWidget* parent = nullptr);
107 ~QwtScaleWidget() override;
108
109Q_SIGNALS:
110
115
124 void requestScaleRangeUpdate(double min, double max);
125
130 void selectionChanged(bool selected);
131
132public:
134 void setTitle(const QString& title);
136 void setTitle(const QwtText& title);
138 QwtText title() const;
139
141 void setLayoutFlag(LayoutFlag, bool on);
143 bool testLayoutFlag(LayoutFlag) const;
144
146 void setBorderDist(int dist1, int dist2);
148 int startBorderDist() const;
150 int endBorderDist() const;
151
153 void getBorderDistHint(int& start, int& end) const;
154
156 void getMinBorderDist(int& start, int& end) const;
158 void setMinBorderDist(int start, int end);
160 int startMinBorderDist() const;
162 int endMinBorderDist() const;
163
165 void setMargin(int);
167 int margin() const;
168
170 void setSpacing(int);
172 int spacing() const;
173
175 void setEdgeMargin(int offset);
177 int edgeMargin() const;
178
180 void setScaleDiv(const QwtScaleDiv&);
182 void setTransformation(QwtTransform*);
183
185 void setScaleDraw(QwtScaleDraw*);
187 const QwtScaleDraw* scaleDraw() const;
189 QwtScaleDraw* scaleDraw();
190
192 void setLabelAlignment(Qt::Alignment);
194 void setLabelRotation(double rotation);
195
197 void setColorBarEnabled(bool);
199 bool isColorBarEnabled() const;
200
202 void setColorBarWidth(int);
204 int colorBarWidth() const;
205
207 void setColorMap(const QwtInterval&, QwtColorMap*);
208
210 QwtInterval colorBarInterval() const;
212 const QwtColorMap* colorMap() const;
213
214 virtual QSize sizeHint() const override;
215 virtual QSize minimumSizeHint() const override;
216
218 int titleHeightForWidth(int width) const;
220 int dimForLength(int length, const QFont& scaleFont) const;
221
223 void drawColorBar(QPainter*, const QRectF&) const;
225 void drawTitle(QPainter*, QwtScaleDraw::Alignment, const QRectF& rect) const;
226
228 void setAlignment(QwtScaleDraw::Alignment);
230 QwtScaleDraw::Alignment alignment() const;
231
233 QRectF colorBarRect(const QRectF&) const;
234
236 QRect scaleRect() const;
238 void setTextColor(const QColor& c);
240 QColor textColor() const;
241
243 void setScaleColor(const QColor& c);
245 QColor scaleColor() const;
246
248 void layoutScale(bool update_geometry = true);
249
251 QwtAxisId axisID() const;
253 bool isXAxis() const;
255 bool isYAxis() const;
256 //===============================================
257 // Built-in action methods
258 //===============================================
259
261 void setBuildinActions(BuiltinActionsFlags acts);
263 BuiltinActionsFlags buildinActions() const;
265 bool testBuildinActions(BuiltinActions ba) const;
266
268 void setSelected(bool selected);
270 bool isSelected() const;
271
273 void setSelectionColor(const QColor& color);
275 QColor selectionColor() const;
276
278 void setZoomFactor(double factor);
280 double zoomFactor() const;
281
283 void setSelectedPenWidthOffset(qreal offset = 1);
285 qreal selectedPenWidthOffset() const;
286
288 bool isOnScale(const QPoint& pos) const;
289
290protected:
291 virtual void paintEvent(QPaintEvent*) override;
292 virtual void resizeEvent(QResizeEvent*) override;
293 virtual void changeEvent(QEvent*) override;
294
295 void draw(QPainter*) const;
296
297 void scaleChange();
298
299private:
300 void initScale(QwtScaleDraw::Alignment);
301};
302
303Q_DECLARE_OPERATORS_FOR_FLAGS(QwtScaleWidget::LayoutFlags)
304
305#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
BuiltinActions
Built-in actions
Definition qwt_scale_widget.h:90
void selectionChanged(bool selected)
Signal emitted when the axis selection state changes
QwtScaleWidget(QwtScaleDraw::Alignment, QWidget *parent=nullptr)
Constructor with alignment
A class representing a text
Definition qwt_text.h:70
A transformation between coordinate systems
Definition qwt_transform.h:47