|
|
#pragma once
|
|
|
|
|
|
#include "iGuiPlot.h"
|
|
|
|
|
|
//class ZxBarPlot;
|
|
|
|
|
|
// 带有柱状图
|
|
|
class M_GUI_PLOT_EXPORT iGuiPlotBar : public iGuiPlot
|
|
|
{
|
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
|
explicit iGuiPlotBar(QWidget *parent = 0);
|
|
|
~iGuiPlotBar();
|
|
|
|
|
|
// 初始化UI
|
|
|
virtual void initChartView(QString sTitle, QSize szDefault);
|
|
|
|
|
|
// 序列化
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
// 反序列化后,把数据重新加入m_mapCurveData与m_mapCurveType
|
|
|
virtual void resetAfterDeserialized();
|
|
|
|
|
|
// 刷新图形
|
|
|
virtual void runUpdate();
|
|
|
virtual void updatePlots();
|
|
|
|
|
|
// 状态
|
|
|
virtual bool isModified();
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// 绘制Painter函数重载
|
|
|
virtual void paintEvent(QPaintEvent *);
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
// 从zxPlot传递
|
|
|
virtual void slotPlotModified(int b);
|
|
|
|
|
|
virtual void slotObjCompleted(ZxObjBase*);
|
|
|
|
|
|
// 选择曲线弹出对话框显示数据
|
|
|
virtual void slotShowCurveData(ZxObjCurveBase* p);
|
|
|
|
|
|
public:
|
|
|
|
|
|
// 设置数据,柱状图数,B代表Bar
|
|
|
virtual ZxObjCurve* appendSeriesB(QStringList& listLabelXs, VecDouble& vecY, QString sName, \
|
|
|
bool bUseY2 = false, bool bUpdateAxisXY = true);
|
|
|
|
|
|
void updateAxisXYs(QStringList& listLabelXs, VecDouble& vecY);
|
|
|
void changeAxisX();
|
|
|
|
|
|
// 多条数据设置
|
|
|
//void setMultiColumnDatas(VVecDouble vvecDataY, QStringList listSeries, \
|
|
|
// QStringList listTickLabelXs);
|
|
|
|
|
|
// 把曲线添加或新建后,刷新坐标轴
|
|
|
virtual void freshAxisScales(bool bReset = true, bool bMinusPermitted = true);
|
|
|
virtual void freshAxisYScales(bool bReset = true);
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
//ZxBarPlot* m_pBarPlot; //其实就是 m_pPlot,只是为了调用方便,不涉及序列化
|
|
|
};
|