DiagramDesigner/diagramCavas/include/structDataMeasurementDelega...

61 lines
2.3 KiB
C++

#ifndef STRUCTDATAMEASUREMENTDELEGATE_H
#define STRUCTDATAMEASUREMENTDELEGATE_H
/**
* 结构预览ui的量测类型model
* */
#include <QStyledItemDelegate>
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