#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,只是为了调用方便,不涉及序列化 };