#pragma once #include "iSubWndAnal.h" class iWxModelOption; class iWxModelParameter; class iAlgModelBase; class iParaManager; class iWxWmDataPF; class ZxTableModel; class iWxTime; class iAlgFitBase; class ZxObjCurve; class ZxObjPointEx; class M_SUB_WND_EXPORT iSubWndAnalSeg : public iSubWndAnal { Q_OBJECT public: explicit iSubWndAnalSeg(QWidget *parent = 0, QString sExt = ""); ~iSubWndAnalSeg(); // 配置窗体 virtual void configWnd(); virtual QWidget* initUiMainWx(); // 执行命令:通常来自图形右侧/左侧的工具栏 virtual bool runActionOf(QString sAction); // 重新调整工具栏 // virtual void reAdjustToolbar(QToolBar*); // 检测按钮状态(Ribbon) virtual bool checkCmdEnable(bool &b, \ QString sName, int nID, \ bool bLicensed); // 由子窗体创建RunOption virtual iWxRunOptionStd* buildWxRunOption(); virtual void finalDeals(); protected: void _dealFuzzy(); void fuzzyHitPoints(ZxObjPointEx* pPt); bool getCrossXOfHitPoints(QVector& vecHitPts, float& fX); bool getFuzzyFlowXBy(float xC, float& xF); void removeFirstOne(); bool autoAlignP(float xC, float xF); // 对于流动段,在此处考虑模拟选中最后一个流动段 // 有判断条件的情况下,TODO 20240819 virtual void simuHitLastSeg(); //模拟点击最后一个流动段 public slots: // 添加点 void slotCmdHitPoint(PlotOperationMode o, \ const QPointF& pt, \ bool& b); void slotHitPointMoved(); private: QVector m_vecHitPts; };