1 Star 0 Fork 4

CMeng/QCustomPlotChart

forked from MeetOne/QCustomPlotChart 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
chartoperate.h 6.42 KB
一键复制 编辑 原始数据 按行查看 历史
#ifndef CHARTOPERATE_H
#define CHARTOPERATE_H
#include <QObject>
#include <QFont>
#include <QSharedPointer>
#include <QMessageBox>
#include <QInputDialog>
#include <QPushButton>
#include <QMouseEvent>
#include <QPen>
#include <QMenu>
#include <QAction>
#include <QLabel>
#include <QComboBox>
#include <QLineEdit>
#include <QPushButton>
#include "global.h"
#include "plotchartutils.h"
#include "dataoperate.h"
#include "qcustomplot.h"
#define DEFAULT_YVALUE 1
#define COLOR_CYAN QColor(25, 187, 180)
#define COLOR_BLUE QColor(0, 129, 255)
class ChartOperate : public QObject
{
Q_OBJECT
public:
explicit ChartOperate(QCustomPlot *plot);
signals:
public slots:
// 设置Chart显示
void selectionChanged();
void mousePress(QMouseEvent* event);
void mouseMove(QMouseEvent* event);
void mouseRelease(QMouseEvent* event);
void mouseWheel();
void contextMenuRequest(QPoint pos);
void plotPointClick(QCPAbstractPlottable* plottable, int dataIndex, QMouseEvent* event);
void legendPointClick(QCPLegend *legend, QCPAbstractLegendItem *item, QMouseEvent *event);
void legendPointDBClick(QCPLegend *legend, QCPAbstractLegendItem *item, QMouseEvent *event);
// 鼠标右键
void actionChtAddLine();
void actionChtAddPt();
void actionChtDelLine();
void actionChtDelPt();
void removeAllGraphs();
void actionLegendUp();
void actionLegendDown();
void actionChtMidInsertLine();
void modifyChtLegendName();
// 锁定图表
void actionLockCht();
// 下拉框选中
void selectTextChanged(int index);
// 按钮按下
void saveBtnSlot();
public:
// 生成初始化空白图表
void makeInitChart();
// 图表其他属性设置
void initChartProperty();
// 信号槽绑定
void initSignals();
// 获取初始化数据
void getInitDataAndAddLine();
// 设置标题名称
void setChartTitle(QString text);
// 坐标轴设置
void setChartAxis();
// 添加序列
void addChartLine(int layerID, QString UUID, QString name, QVector<double> pointXList, QVector<double> pointYList);
// 修改序列
void modifyChartLine();
// 删除序列
void delChartLine();
// 添加点
void addChartPoint();
// 修改点
void modifyChartPoint(QString UUID, int pointIndex, double xValue, double yValue);
// 删除点
void delChartPoint(double sortKey);
// 删除所有线
void delAllChart();
// 添加文字
void addSeriesText();
// 添加层ID与UUID对应关系
void delApointLayerID(QString UUID);
// 根据UUID获取层
int getLayerIDByUUID(QString UUID);
void chkCntPointXAxis(int cntXValue);
// 获取当前线的最大点横坐标
int getCntLineMaxXAxis();
// 添加点固定点Vector的值
void addFixedVector(int lineIndex, QVector<double> &x, QVector<double> &y, QVector<double> &originalY);
// 清空图表
void clearChart();
// 重新渲染Chart
void reRenderChart(QList<ConfData> listConfData);
// // 添加数据到全局数据
// void addChartLineDataToConf(int index, QString name, QPointF pointF);
// 打开文件
void openANewFile(QString fileName);
// 保存当前数据
void saveCntDataToFile();
// 修改当前文件名
bool modifyFileName(QString fileName);
// 文件另存为
void saveAnOtherFile(QString fileName);
// 是否显示图例
void isShowLegend(bool isShow);
// 设置label
void setLabelPos(QLabel *label);
// 设置选中线的样式
void setSelectChtLineStyle(int sceneIndex);
// 下拉选择文件
QString setIntactFilePath(QString fileName);
// 重新渲染下拉的框
void reloadSelect(QString cntName);
void setCBoxFiles(QComboBox *cboxFiles);
void setCBoxInitSetting();
// 设置保存的值
void setSaveTextEdit(QLineEdit *saveEdit);
void setSaveButton(QPushButton *saveBtn);
// 获取中间值
int getLineMidValue(QString UUID);
QMap<QString, int> getAllLineMidValue();
private:
void setSaveOtherFile();
void setSaveNowFile();
private:
QCustomPlot *m_plot;
DataOperate *m_data;
QList<ConfData> m_listConfData; // 全部数据
int m_XScale; // X缩放的值
int m_YScale; // Y缩放的值
int m_xMinRange; // X最小值
int m_xMaxRange; // X最大值
int m_yMinRange; // Y最小值
int m_yMaxRange; // Y最大值
bool m_changeFlag; // 是否更改图形数据
QList<QString> m_UUIDAndID; // UUID与层的对应关系
QString m_cntLineUUID; // 当前点UUID
int m_cntPointIndex; // 当前点的索引
QPointF m_cntLinePoint; // 当前点的坐标
// 拖拽
int m_cntDargIndex; // 当前拖拽点的索引
QString m_cntDragUUID; // 当前拖拽点的UUID
bool m_dragFlag; // 是否能拖拽标识
QLabel *m_lblPos; // 界面点坐标
QComboBox *m_cboxFiles; // 文件下拉
QLineEdit *m_saveEdit; // 保存文件名
QPushButton *m_saveBtn; // 保存文件按钮
QPoint m_mousePos; // 鼠标右键添加点的坐标
int m_cntSelectScene; // 当前选择的场景索引
bool m_isUpFlag; // 删除线后是否上移重绘
bool m_legendIsShow; // 设置legend是否显示, 默认显示
QCPPlottableLegendItem *m_cntLegendItem; // 当前选中legend
QString m_cntLegendUUID; // 修改图例对应图表的UUID
QString m_lastFileName; // 上一次文件名
int m_lastCntIndex; // 记录上一次的索引
QList<QString> m_cBoxFileNames; // cBox的值
bool m_selectFlag; // 下拉标识
};
#endif // CHARTOPERATE_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/CMengCoder/QCustomPlotChart.git
git@gitee.com:CMengCoder/QCustomPlotChart.git
CMengCoder
QCustomPlotChart
QCustomPlotChart
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385