#pragma once #include "iSubWndBaseFit.h" #include "nmSubWnd_global.h" class nmWxGridVTKContainerWidget; class QTimer; class NM_SUB_WND_EXPORT nmSubWndGrid : public iSubWndBaseFit { Q_OBJECT public: explicit nmSubWndGrid(QWidget *parent = 0, QString sExt = "", double pebiGridControl = 150.0, bool bGeneratePebiGrid = true); ~nmSubWndGrid(); // 配置窗体 virtual void configWnd(QString sPrevInfo); // 初始化UI virtual void initUI(); virtual QWidget* initUiMainWx(); // 成果保存加载 virtual bool loadRsts(); virtual bool saveRsts(); virtual bool onConfirmClosing(); public slots: void updateGrid(); void onDebounceTimeout(); void onPebiGridGenerated(bool success); public: // 执行命令:通常来自Ribbon virtual bool runCmdBy(QString sName, QString sID); // 生成PEBI网格 bool generatePebiGrid(); private: // UI布局和VTK控件 QVBoxLayout* m_mainLayout; nmWxGridVTKContainerWidget* m_vtkWidget; // 每个网格窗口独立持有防抖定时器,避免多个窗口共享同一个static定时器导致刷新落到旧窗口 QTimer* m_pDebounceTimer; // PEBI GridControl控制参数,对应HX_NWTM_GRID_INPUT::GridControl double m_dPebiGridControl; // 是否根据当前地图几何重新生成PEBI网格 bool m_bGeneratePebiGrid; };