50 lines
1.7 KiB
C++
50 lines
1.7 KiB
C++
#ifndef STRUCTDATAPROPERTYDELEGATE_H
|
|
#define STRUCTDATAPROPERTYDELEGATE_H
|
|
/**
|
|
* 结构预览ui的参量类型代理
|
|
* */
|
|
#include <QStyledItemDelegate>
|
|
|
|
class StructDataSource;
|
|
struct MeasurementInfo;
|
|
struct ExtraProperty;
|
|
class QCompleter;
|
|
|
|
class StructDataPropertyDelegate : public QStyledItemDelegate
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
StructDataPropertyDelegate(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;
|
|
|
|
void setConnectParaCompleter(QCompleter* p) {_connectCompleter = p;} //设置连接参数输入的completer
|
|
private:
|
|
QWidget* createConnectParaEditor(QWidget* parent) const;
|
|
|
|
QWidget* createDefaultValueEditor(QWidget* parent, const QModelIndex& index) const;
|
|
|
|
QWidget* createLengthPrecisionEditor(QWidget* parent) const;
|
|
|
|
void setDefaultValueEditorData(QWidget* editor, const QVariant& value, const QModelIndex& index) const;
|
|
|
|
QVariant getDefaultValueEditorData(QWidget* editor, const QModelIndex& index) const;
|
|
public slots:
|
|
void onConnectParamChanged(const QString& str) const;
|
|
|
|
protected:
|
|
bool eventFilter(QObject *obj, QEvent *event) override;
|
|
private:
|
|
QCompleter* _connectCompleter = nullptr; //自动补全的completer
|
|
};
|
|
|
|
#endif
|