You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/iPlot/iPlotCurveT/tCurvePlotView.h

98 lines
2.0 KiB
C

#pragma once
#include "ZxRenderView.h"
#include "tCurvePlotScene.h"
#include "iPlotCurveT_global.h"
// 图视图
class I_PLOTCURVE_T_EXPORT tCurvePlotView
: public ZxRenderView
{
Q_OBJECT
ZX_DECLARE_DYNAMIC
public:
tCurvePlotView();
public:
// 获取Scene仅仅类型转换
tCurvePlotScene* getScene() const;
virtual QRectF adjustRectFitViewAspect(const QRectF& rect);
// 准备右键菜单
virtual void onPrepareContextMenu(QMenu* pMenu,
const QPointF& pos);
// 图示简易模式(不显示缩放、不有滚动条)
virtual void setSimpleMode(bool bSimpleMode);
public slots:
virtual void slotSaveAsImg();
virtual void slotCopyAsImg();
virtual void slotShowHideTitle();
virtual void slotShowHideLegend();
virtual void slotUndo();
virtual void slotRedo();
#ifdef _SACN_OLD_CODES_
virtual void slotOptAxisXY();
virtual void slotOptAxisX();
virtual void slotOptAxisY();
public:
virtual void optMainAxisScale(bool bX);
#endif
signals:
// 由于本来不依赖数据对象,所有通过信号槽关联出去
void sigCheckDragAccepted(QDragEnterEvent*, bool&);
void sigDealwithDrop(QDropEvent*);
void sigMousePosChanged(const QPointF &pos);
// 获取额外的tips比如 探测半径
void sigGetTipsExOfPos(QString& sTip, double dX, double dY);
// 状态栏
void sigFresh2Status(QString& s);
// 允许外部进行菜单调整,通常是插入,默认是在 Redo/Undo 与保存图片 之间
void sigAdjustContextMenu(QMenu* pMenu);
#ifdef _SACN_OLD_CODES_
// 优化显示坐标轴
void sigOptMainAxisScale(bool);
#endif
protected:
/// @brief 拖拽支持
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent* event);
void mouseMoveEvent(QMouseEvent* e);
void focusOutEvent(QFocusEvent *);
void leaveEvent(QEvent *);
protected:
bool m_bSimpleMode; //是否简易模式
// 拖拽模式
bool m_bDraging;
};