#pragma once #include "iGridRowItemDouble.h" // 在 iGridRowItemDouble 基础上,增加按钮,即:激活时,多了一个按钮 // 用于,比如 对某些Item,自行进行计算,点击按钮 响应,目前用于数值 class X_GUI_GRIDPTY_EXPORT iGridRowItemDoubleBtn : public iGridRowItemDouble { Q_OBJECT public: explicit iGridRowItemDoubleBtn(iGridRowItem* pParent = nullptr); ~iGridRowItemDoubleBtn(); public: // 序列化 virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); // 控件 virtual void initEditor(); virtual void configEditor(); virtual void initOtherEditors(); virtual void setDlgBase(QWidget* p); virtual void setParameter(iParameter* p); // 从外部绑定数据 virtual void bindTableInfos(const QStringList& listTitles, \ const VVecVariant& vvec, \ bool bReadonly = true, \ bool bExpanded = false); virtual bool isInputOk(); virtual void setActive(bool b); // 该基类默认按double进行实现 virtual bool setCurValue(QVariant o);//现值 virtual QVariant getCurValue(); virtual QString getShowValue(); //非激活时显示在右侧的文本 // 原值,请在setParameter之前调用 virtual void setRawValue(QVariant o); QVariant getRawValue(); // 位置相关 virtual void setBounds(QRectF& rt); virtual QRectF getRightBounds_Main(); virtual QVariant getInfoRight(); virtual QString getInfoUnit(); signals: /// @brief 触发按钮,允许外部进行按钮操作,比如弹出对话框之类 /// @param sName: (in) 参数标识,为英文标识 /// @param vCustom: (in & out) 外部弹出后,可以把数据传递回来,并且缓存,以支持序列化 /// @param bModified: (out) 是否正确触发且vCustom发生改变 void sigBtnClicked(const QString sSegName, \ QVariant& vCustom, \ bool& bModified); public slots: virtual void slotBtnClicked(); protected: virtual void onCustomDataChanged(); protected: QPushButton* m_pBtn; QVariant m_vCustom; //这是额外增加的数据体,暂时保留,以便后续扩展 // QStringList m_listTitles; // VVecVariant m_vvecData; };