#ifndef STRUCTDATAMEASUREMENTDELEGATE_H #define STRUCTDATAMEASUREMENTDELEGATE_H /** * 结构预览ui的量测类型model * */ #include class StructDataSource; struct MeasurementInfo; struct ExtraProperty; class QCompleter; class StructDataMeasurementDelegate : public QStyledItemDelegate { Q_OBJECT public: StructDataMeasurementDelegate(QObject* parent = nullptr); QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override; void setEditorData(QWidget* editor, const QModelIndex& index) const override; void setModelData(QWidget* editor, QAbstractItemModel* model,const QModelIndex& index) const override; void updateEditorGeometry(QWidget* editor,const QStyleOptionViewItem& option,const QModelIndex& index) const override; QString displayText(const QVariant& value, const QLocale& locale) const override; // 提供工具提示 QString displayText(const QVariant& value, const QLocale& locale,const QModelIndex& index) const; void setConnectParaCompleter(QCompleter* p) {_connectCompleter = p;} //设置连接参数输入的completer public slots: void onConnectParamChanged(const QString& str) const; protected: bool eventFilter(QObject *obj, QEvent *event) override; private: QWidget* createConnectParaEditor(QWidget* parent) const; QWidget* createTextEditor(QWidget* parent) const; QWidget* createMeasurementTypeEditor(QWidget* parent) const; QWidget* createSizeEditor(QWidget* parent) const; QWidget* createSourceEditor(QWidget* parent) const; QWidget* createNumberEditor(QWidget* parent) const; QWidget* createEnableEditor(QWidget* parent) const; QWidget* createCauseYCEditor(QWidget* parent, const QModelIndex& index) const; //创建遥测cause输入对话框 QWidget* createCauseYXEditor(QWidget* parent) const; //遥信cause QWidget* createCommandEditor(QWidget* parent) const; //事件command QWidget* createActionParaEditor(QWidget* parent) const; //事件actionpara QString getParaType(const QModelIndex& index) const; //获取当前的协议方式 private: QCompleter* _connectCompleter = nullptr; //自动补全的completer }; #endif