DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAChartInteractionInterface.h
1#ifndef DACHARTINTERACTIONINTERFACE_H
2#define DACHARTINTERACTIONINTERFACE_H
3#include "DAFigureAPI.h"
4// stl
5#include <functional>
6// qt
7#include <QRectF>
8#include <QWidget>
9class QwtPlotCanvasZoomer;
10class QwtPlotPanner;
11class QwtPlotPicker;
12class QwtPlotMagnifier;
13class QwtPlotSeriesDataPicker;
14class QwtLegend;
15
16namespace DA
17{
18
23{
24public:
25 virtual ~DAChartInteractionInterface() = default;
26
27 // ==================== 缩放控制 ====================
28 virtual void enableZoom(bool enable = true) = 0;
29 virtual bool isZoomEnabled() const = 0;
30
31 virtual void zoomToOriginal() = 0;
32 virtual void zoomIn() = 0;
33 virtual void zoomOut() = 0;
34
35 virtual QwtPlotCanvasZoomer* getZoomer() const = 0;
36
37 // ==================== 平移控制 ====================
38 virtual void enablePan(bool enable = true) = 0;
39 virtual bool isPanEnabled() const = 0;
40
41 virtual QwtPlotPanner* getPanner() const = 0;
42
43 // ==================== 十字线控制 ====================
44 virtual void enableCrosshair(bool enable = true) = 0;
45 virtual bool isCrosshairEnabled() const = 0;
46
47 virtual QwtPlotPicker* getCrosshair() const = 0;
48
49 // ==================== 数据拾取控制 ====================
50
51
52 virtual void enableYValuePicking(bool enable = true) = 0;
53 virtual bool isYValuePickingEnabled() const = 0;
54
55 virtual void enableXYValuePicking(bool enable = true) = 0;
56 virtual bool isXYValuePickingEnabled() const = 0;
57
58 virtual QwtPlotSeriesDataPicker* getDataPicker() const = 0;
59
60 // ==================== 鼠标滚轮控制 ====================
61 virtual void enableMouseWheelZoom(bool enable = true) = 0;
62 virtual bool isMouseWheelZoomEnabled() const = 0;
63
64 virtual QwtPlotMagnifier* getMagnifier() const = 0;
65
66 // ==================== 图例面板控制 ====================
67 virtual void enableLegendPanel(bool enable = true) = 0;
68 virtual bool isLegendPanelEnabled() const = 0;
69
70 virtual QwtLegend* getLegendPanel() const = 0;
71
72
73 // ==================== 工厂函数注册 ====================
74 using PannerFactory = std::function< QwtPlotPanner*(QWidget*) >;
75 using PickerFactory = std::function< QwtPlotPicker*(QWidget*) >;
76 using DataPickerFactory = std::function< QwtPlotSeriesDataPicker*(QWidget*) >;
77
78 virtual void registerPannerFactory(const PannerFactory& factory) = 0;
79 virtual void registerPickerFactory(const PickerFactory& factory) = 0;
80 virtual void registerDataPickerFactory(const DataPickerFactory& factory) = 0;
81};
82
83} // namespace DA
84#endif // DACHARTINTERACTIONINTERFACE_H
图表交互控制接口 - 负责缩放、平移、拾取等交互功能
Definition DAChartInteractionInterface.h:23
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44