DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAChartItemTableModel.h
1#ifndef DACHARTITEMTABLEMODEL_H
2#define DACHARTITEMTABLEMODEL_H
3#include "DAFigureAPI.h"
4#include <QAbstractTableModel>
5#include <QList>
6#include <algorithm>
7#include <vector>
8#include "qwt_plot_item.h"
9#include "qwt_point_3d.h"
10#include "qwt_samples.h"
11#include <limits>
12#define QwtPlotItemDataModel_Use_Dynamic_Cast 0
13class QwtPlotMultiBarChart;
14namespace DA
15{
19class DAFIGURE_API DAChartItemTableModel : public QAbstractTableModel
20{
21 Q_OBJECT
22 DA_DECLARE_PRIVATE(DAChartItemTableModel)
23public:
24 DAChartItemTableModel(QObject* p = 0);
26 //给model设置item
27 void setPlotItems(const QList< QwtPlotItem* >& items);
28 const QList< QwtPlotItem* >& getPlotItems() const;
29 //清空所有内容
30 void clear();
31 //允许显示背景色
32 void enableBackgroundColor(bool enable, int alpha = 30);
33 // nan的数值
34 static double nan();
35 //根据表格的列号获取对应的QwtPlotItem
36 QwtPlotItem* getItemFromCol(int col, int* dataColumnDim = nullptr) const;
37 //获取这个item对应的表格颜色
38 QColor getItemColor(QwtPlotItem* item) const;
39 //获取item对应的行数
40 int getItemRowCount(QwtPlotItem* item) const;
41 //获取item对应的第一个列号
42 int getItemsColumnStartIndex(QwtPlotItem* item) const;
43 //获取item对应的列范围
44 void getItemColumnRange(QwtPlotItem* item, int* startCol = nullptr, int* endCol = nullptr) const;
45 //计算QwtPlotMultiBarChart的最大维度
46 static int calcPlotMultiBarChartDim(const QwtPlotMultiBarChart* p);
47 //获取绘图数据维度的描述
48 virtual QString getItemDimDescribe(QwtPlotItem* item, int index) const;
49 //通过列号获取item的名字
50 QString getItemNameFromCol(int col) const;
51 //获取item对应的列数
52 static int getItemColumnCount(QwtPlotItem* item);
53 //
54 // == 下面为设置值的静态函数
55 //
56 static void setSeriesPointFValue(QPointF& p, int col, double val);
57 static void setSeriesPoint3dValue(QwtPoint3D& p, int col, double val);
58 static void setSeriesIntervalValue(QwtIntervalSample& p, int col, double val);
59 static void setSeriesSetsampleValue(QwtSetSample& p, int col, double val);
60 static void setSeriesOHLCsampleValue(QwtOHLCSample& p, int col, double val);
61 //
62public:
63 int rowCount(const QModelIndex& parent = QModelIndex()) const;
64 int columnCount(const QModelIndex& parent = QModelIndex()) const;
65 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
66 QVariant data(const QModelIndex& index, int role) const;
67 bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
68 Qt::ItemFlags flags(const QModelIndex& index) const;
69
70protected:
71 //获取item的最大行数
72 virtual int calcItemDataRowCount(QwtPlotItem* item) const;
73 //获取item的最大列数
74 virtual int calcItemDataColumnCount(QwtPlotItem* item) const;
75 //获取数据 row col 要对应item的维度 ,col是以数据为基准而不是以表格为基准
76 virtual double getItemData(int row, int col, QwtPlotItem* item) const;
77 //设置数据 row col 要对应item的维度
78 virtual bool setPlotItemData(int row, int col, QwtPlotItem* item, const QVariant& var);
79 //更新最大行数
80 void updateRowCount();
81 //更新列数
82 void updateColumnCount();
83 //更新颜色
84 void updateItemColor();
85};
86} // End Of Namespace DA
87#endif // DACHARTITEMTABLEMODEL_H
显示item数据的tablemodel
Definition DAChartItemTableModel.h:20
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44