#ifndef PUBCOMBOLINECOUPLEWIDEGET_H #define PUBCOMBOLINECOUPLEWIDEGET_H #include #include class QFrame; class QString; class PubComboLineCoupleWidegetPrivate; class TComboBox; class TEditableComboBox; class TLabel; class TLineEdit; class TopClassAbs; class TopClassAbs; class TPushButton; class TTextEdit; class TVBoxLayout; class PubComboLineCoupleWideget : public QWidget { Q_OBJECT public: explicit PubComboLineCoupleWideget(TopClassAbs *parent = nullptr); public slots: QVariantMap getData(); void setData(QVariant iData); void setEnumName(QString iEnumName);//设置枚举名,现在只支持所有的editComboBox用相同的枚举值 void setComboBoxEditable(bool iIsEditable = false); QString ttr(const QString &iStr); signals: void dataChanged(); void notification(const QString &type, const QVariant &data = QVariant(), const QString &uuid = QStringLiteral("")); private slots: QString enumText2Name(QString iNameStr); void newCoupleItem();//新建一行 void onDeleteClicked(); private: void initMainView(); private: QFrame *mFrame; TVBoxLayout *mFramelayout; QList mItemWgtLst; TPushButton *mNewItemButton; QString mEnumName; TopClassAbs *mParent; bool mIsComboEditable = false; }; class PubComboLineCoupleWidegetPrivate : public QWidget { Q_OBJECT public: explicit PubComboLineCoupleWidegetPrivate(QWidget *parent = nullptr); void setCategoryEnum(QString iEnumName);//设置comboBox的枚举值 void setComboBoxEditable(bool iIsEditable = false); QString categoryText();//获取comboBox的值 QString valueText();//获取lineEdit的值 void clearData();//清除数据 void setName(const QString& iNameStr);//设置comboBox的值 void setValue(const QString& iValueStr);//设置lineEdit的值 protected slots: signals: void deleteClicked();// 删除行信号 void dataChanged(); public slots: private: TEditableComboBox* mCategoryComboBox; TLineEdit* mValueLineEdit; TPushButton* mDeleteButton; QString mEnumName; }; #endif // PUBCOMBOLINECOUPLEWIDEGET_H