QWT API (中文) 7.0.1
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
94class QWT_EXPORT QwtScaleWidget : public QWidget
95{
96 Q_OBJECT
97 QWT_DECLARE_PRIVATE(QwtScaleWidget)
98public:
101 {
103 TitleInverted = 1
104 };
105
106 Q_DECLARE_FLAGS(LayoutFlags, LayoutFlag)
107
108
117 {
119 ActionNone = 0x00,
121 ActionWheelZoom = 0x01,
123 ActionClickPan = 0x02,
125 ActionAll = 0xFF
126 };
127 Q_DECLARE_FLAGS(BuiltinActionsFlags, BuiltinActions)
128public:
130 explicit QwtScaleWidget(QWidget* parent = nullptr);
132 explicit QwtScaleWidget(QwtScaleDraw::Alignment, QWidget* parent = nullptr);
135
136Q_SIGNALS:
137
147
165 void requestScaleRangeUpdate(double min, double max);
166
177 void selectionChanged(bool selected);
178
179public:
181 void setTitle(const QString& title);
183 void setTitle(const QwtText& title);
185 QwtText title() const;
186
188 void setLayoutFlag(LayoutFlag, bool on);
190 bool testLayoutFlag(LayoutFlag) const;
191
193 void setBorderDist(int dist1, int dist2);
195 int startBorderDist() const;
197 int endBorderDist() const;
198
200 void getBorderDistHint(int& start, int& end) const;
201
203 void getMinBorderDist(int& start, int& end) const;
205 void setMinBorderDist(int start, int end);
207 int startMinBorderDist() const;
209 int endMinBorderDist() const;
210
212 void setMargin(int);
214 int margin() const;
215
217 void setSpacing(int);
219 int spacing() const;
220
222 void setEdgeMargin(int offset);
224 int edgeMargin() const;
225
227 void setScaleDiv(const QwtScaleDiv&);
229 void setTransformation(QwtTransform*);
230
232 void setScaleDraw(QwtScaleDraw*);
234 const QwtScaleDraw* scaleDraw() const;
236 QwtScaleDraw* scaleDraw();
237
239 void setLabelAlignment(Qt::Alignment);
241 void setLabelRotation(double rotation);
242
244 void setColorBarEnabled(bool);
246 bool isColorBarEnabled() const;
247
249 void setColorBarWidth(int);
251 int colorBarWidth() const;
252
254 void setColorMap(const QwtInterval&, QwtColorMap*);
255
257 QwtInterval colorBarInterval() const;
259 const QwtColorMap* colorMap() const;
260
261 virtual QSize sizeHint() const override;
262 virtual QSize minimumSizeHint() const override;
263
265 int titleHeightForWidth(int width) const;
267 int dimForLength(int length, const QFont& scaleFont) const;
268
270 void drawColorBar(QPainter*, const QRectF&) const;
272 void drawTitle(QPainter*, QwtScaleDraw::Alignment, const QRectF& rect) const;
273
275 void setAlignment(QwtScaleDraw::Alignment);
277 QwtScaleDraw::Alignment alignment() const;
278
280 QRectF colorBarRect(const QRectF&) const;
281
283 QRect scaleRect() const;
285 void setTextColor(const QColor& c);
287 QColor textColor() const;
288
290 void setScaleColor(const QColor& c);
292 QColor scaleColor() const;
293
295 void layoutScale(bool update_geometry = true);
296
298 QwtAxisId axisID() const;
300 bool isXAxis() const;
302 bool isYAxis() const;
303 //===============================================
304 // Built-in action methods
305 //===============================================
306
308 void setBuildinActions(BuiltinActionsFlags acts);
310 BuiltinActionsFlags buildinActions() const;
312 bool testBuildinActions(BuiltinActions ba) const;
313
315 void setSelected(bool selected);
317 bool isSelected() const;
318
320 void setSelectionColor(const QColor& color);
322 QColor selectionColor() const;
323
325 void setZoomFactor(double factor);
327 double zoomFactor() const;
328
330 void setSelectedPenWidthOffset(qreal offset = 1);
332 qreal selectedPenWidthOffset() const;
333
335 bool isOnScale(const QPoint& pos) const;
336
337protected:
338 virtual void paintEvent(QPaintEvent*) override;
339 virtual void resizeEvent(QResizeEvent*) override;
340 virtual void changeEvent(QEvent*) override;
341
342 void draw(QPainter*) const;
343
344 void scaleChange();
345
346private:
347 void initScale(QwtScaleDraw::Alignment);
348};
349
350Q_DECLARE_OPERATORS_FOR_FLAGS(QwtScaleWidget::LayoutFlags)
351
352#endif
QwtColorMap 用于将数值映射为颜色。
Definition qwt_color_map.h:62
表示区间的类
Definition qwt_interval.h:45
A class representing a scale division/表示刻度划分的类
Definition qwt_scale_div.h:53
用于绘制刻度的类
Definition qwt_scale_draw.h:62
Alignment
刻度绘制的对齐方式
Definition qwt_scale_draw.h:75
包含刻度的控件
Definition qwt_scale_widget.h:95
void scaleDivChanged()
当刻度分度发生变化时发出的信号
void requestScaleRangeUpdate(double min, double max)
坐标轴主动请求变更刻度范围
LayoutFlag
Layout flags of the title
Definition qwt_scale_widget.h:101
BuiltinActions
内置的动作
Definition qwt_scale_widget.h:117
void selectionChanged(bool selected)
当前轴被选中状态发生变化发射信号
QwtScaleWidget(QwtScaleDraw::Alignment, QWidget *parent=nullptr)
Constructor with alignment
virtual ~QwtScaleWidget()
Destructor
表示文本的类
Definition qwt_text.h:93
坐标系之间的变换
Definition qwt_transform.h:61