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 getMinBorderDist(int& start, int& end) const;
228 void setMinBorderDist(int start, int end);
230 int startMinBorderDist() const;
232 int endMinBorderDist() const;
233
235 void setMargin(int);
237 int margin() const;
238
240 void setSpacing(int);
242 int spacing() const;
243
245 void setEdgeMargin(int offset);
247 int edgeMargin() const;
248
250 void setScaleDiv(const QwtScaleDiv&);
252 void setTransformation(QwtTransform*);
253
255 void setScaleDraw(QwtScaleDraw*);
257 const QwtScaleDraw* scaleDraw() const;
259 QwtScaleDraw* scaleDraw();
260
262 void setLabelAlignment(Qt::Alignment);
264 void setLabelRotation(double rotation);
265
267 void setColorBarEnabled(bool);
269 bool isColorBarEnabled() const;
270
272 void setColorBarWidth(int);
274 int colorBarWidth() const;
275
277 void setColorMap(const QwtInterval&, QwtColorMap*);
278
280 QwtInterval colorBarInterval() const;
282 const QwtColorMap* colorMap() const;
283
284 virtual QSize sizeHint() const override;
285 virtual QSize minimumSizeHint() const override;
286
288 int titleHeightForWidth(int width) const;
290 int dimForLength(int length, const QFont& scaleFont) const;
291
293 void drawColorBar(QPainter*, const QRectF&) const;
295 void drawTitle(QPainter*, QwtScaleDraw::Alignment, const QRectF& rect) const;
296
298 void setAlignment(QwtScaleDraw::Alignment);
300 QwtScaleDraw::Alignment alignment() const;
301
303 QRectF colorBarRect(const QRectF&) const;
304
306 QRect scaleRect() const;
308 void setTextColor(const QColor& c);
310 QColor textColor() const;
311
313 void setScaleColor(const QColor& c);
315 QColor scaleColor() const;
316
318 void layoutScale(bool update_geometry = true);
319
321 QwtAxisId axisID() const;
323 bool isXAxis() const;
325 bool isYAxis() const;
326 //===============================================
327 // Built-in action methods
328 //===============================================
329
331 void setBuildinActions(BuiltinActionsFlags acts);
333 BuiltinActionsFlags buildinActions() const;
335 bool testBuildinActions(BuiltinActions ba) const;
336
338 void setSelected(bool selected);
340 bool isSelected() const;
341
343 void setSelectionColor(const QColor& color);
345 QColor selectionColor() const;
346
348 void setZoomFactor(double factor);
350 double zoomFactor() const;
351
353 void setSelectedPenWidthOffset(qreal offset = 1);
355 qreal selectedPenWidthOffset() const;
356
358 bool isOnScale(const QPoint& pos) const;
359
360protected:
361 virtual void paintEvent(QPaintEvent*) override;
362 virtual void resizeEvent(QResizeEvent*) override;
363 virtual void changeEvent(QEvent*) override;
364
365 void draw(QPainter*) const;
366
367 void scaleChange();
368
369private:
370 void initScale(QwtScaleDraw::Alignment);
371};
372
373Q_DECLARE_OPERATORS_FOR_FLAGS(QwtScaleWidget::LayoutFlags)
374
375#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