logplus/ModuleConsole/include/ParameterItemControl.h

380 lines
13 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/**
* @file ParameterItemControl.h
* @brief
* @date 2012-3-27
* @author sinopec
*/
#ifndef PAI_FRAME_WORKFLOWVIEW_PARAMETERITEMCONTROL_H_
#define PAI_FRAME_WORKFLOWVIEW_PARAMETERITEMCONTROL_H_
#include <QDialogButtonBox>
#include <QGroupBox>
#include <QCheckBox>
#include <QDoubleSpinBox>
//#include "PaiCheckBox.h"
#include "PaiSpinBox.h"
//#include "PaiDoubleSpinBox.h"
#include "PaiLineEdit.h"
#include "PaiComboBox.h"
#include "ParameterItem.h"
#include <QFormLayout>
namespace pai
{
namespace gui
{
/**
* @brief ,
*/
class CParameterItemControl
{
public:
CParameterItemControl(pai::module::CParameterItem* pParameterItem);
virtual ~CParameterItemControl();
/**
* @brief QVariant并返回
*/
virtual QVariant GetDisplayValue() const=0;
/**
* @brief QVariant并返回
*/
virtual QVariant GetValue() const=0;
/**
* @brief
* @param varDisplayValue
*/
virtual void SetDisplayValue(const QVariant& varDisplayValue)=0;
/**
* @brief
*/
virtual void SetValue(const QVariant& varValue)=0;
pai::module::CParameterItem*GetParameterItem()
{
return m_pParameterItem;
}
protected:
pai::module::CParameterItem* m_pParameterItem;
};
///////////////////////////////////////////RADIOBUTTONGROUP///////////////////////////////////
/**
* @class CParameterItemRadioButtonGroup
* @brief
*/
class CParameterItemRadioButtonGroup: public QGroupBox, public CParameterItemControl
{
Q_OBJECT
public:
/**
* @brief
* @param pParameterItem
* @param pParent
*/
CParameterItemRadioButtonGroup(pai::module::CParameterItem* pParameterItem,QWidget* pParent=0);
/**
* @brief QVariant并返回
*/
virtual QVariant GetDisplayValue() const;
/**
* @brief QVariant并返回
*/
virtual QVariant GetValue() const;
/**
* @brief
* @param varDisplayValue
*/
virtual void SetDisplayValue(const QVariant& varDisplayValue);
/**
* @brief
*/
virtual void SetValue(const QVariant& varValue);
/**
* @brief
*/
void installEventFilter(QObject * filterObj);
signals:
/**
* @brief
*/
void signalInternalIndexChanged();
private slots:
/**
* @brief radiobutton的点击
*/
void slotOnToggled(bool toggled);
};
///////////////////////////////////////////SPINBOX///////////////////////////////////
/**
* @class CParameterItemSpinBox
* @brief
*/
class CParameterItemSpinBox: public PaiSpinBox,public CParameterItemControl
{
public:
/**
* @brief
* @param pParameterItem
* @param pParent
*/
CParameterItemSpinBox(pai::module::CParameterItem* pParameterItem,QWidget* pParent=0);
/**
* @brief QVariant并返回
*/
virtual QVariant GetDisplayValue() const;
/**
* @brief QVariant并返回
*/
virtual QVariant GetValue() const;
/**
* @brief
* @param varDisplayValue
*/
virtual void SetDisplayValue(const QVariant& varDisplayValue);
/**
* @brief
*/
virtual void SetValue(const QVariant& varValue);
};
///////////////////////////////////////////DOUBLE SPINBOX///////////////////////////////////
/**
* @class CParameterItemSpinBox
* @brief
*/
class CParameterItemDoubleSpinBox: public QDoubleSpinBox,public CParameterItemControl
{
public:
/**
* @brief
* @param pParameterItem
* @param pParent
*/
CParameterItemDoubleSpinBox(pai::module::CParameterItem* pParameterItem,QWidget* pParent=0);
/**
* @brief QVariant并返回
*/
virtual QVariant GetDisplayValue() const;
/**
* @brief QVariant并返回
*/
virtual QVariant GetValue() const;
/**
* @brief
* @param varDisplayValue
*/
virtual void SetDisplayValue(const QVariant& varDisplayValue);
/**
* @brief
*/
virtual void SetValue(const QVariant& varValue);
};
///////////////////////////////////////////CHECKBOX///////////////////////////////////
/**
* @class CParameterItemCheckBox
* @brief
*/
class CParameterItemCheckBox: public QCheckBox,public CParameterItemControl
{
public:
/**
* @brief
* @param pParameterItem
* @param pParent
*/
CParameterItemCheckBox(pai::module::CParameterItem* pParameterItem,QWidget* pParent=0);
/**
* @brief QVariant并返回
*/
virtual QVariant GetDisplayValue() const;
/**
* @brief QVariant并返回
*/
virtual QVariant GetValue() const;
/**
* @brief
* @param varDisplayValue
*/
virtual void SetDisplayValue(const QVariant& varDisplayValue);
/**
* @brief
*/
virtual void SetValue(const QVariant& varValue);
};
///////////////////////////////////////////LINEEDIT///////////////////////////////////
/**
* @class CParameterItemLineEdit
* @brief
*/
class CParameterItemLineEdit: public PaiLineEdit,public CParameterItemControl
{
Q_OBJECT
public:
/**
* @brief
* @param pParameterItem
* @param pParent
*/
CParameterItemLineEdit(pai::module::CParameterItem* pParameterItem,QWidget* pParent=0);
/**
* @brief QVariant并返回
*/
virtual QVariant GetDisplayValue() const;
/**
* @brief QVariant并返回
*/
virtual QVariant GetValue() const;
/**
* @brief
* @param varDisplayValue
*/
virtual void SetDisplayValue(const QVariant& varDisplayValue);
/*virtual */void dropEvent(QDropEvent *pEvent);
/**
* @brief
*/
virtual void SetValue(const QVariant& varValue);
private slots:
/**
* @brief
*/
void slotOnEditingFinished(const QString& text);
};
///////////////////////////////////////////COMBOBOX///////////////////////////////////
/**
* @class CParameterItemComboBox
* @brief
*/
class CParameterItemComboBox: public PaiComboBox,public CParameterItemControl
{
Q_OBJECT
public:
/**
* @brief
* @param pParameterItem
* @param pParent
*/
CParameterItemComboBox(pai::module::CParameterItem* pParameterItem,QWidget* pParent=0);
/**
* @brief QVariant并返回
*/
virtual QVariant GetDisplayValue() const;
/**
* @brief QVariant并返回
*/
virtual QVariant GetValue() const;
/**
* @brief
* @param varDisplayValue
*/
virtual void SetDisplayValue(const QVariant& varDisplayValue);
/**
* @brief
*/
virtual void SetValue(const QVariant& varValue);
public slots:
/**
* @brief currentIndexChnaged
*/
void slotIndexChanged(int index);
signals:
/**
* @brief combox
*/
void signalInternalIndexChanged();
};
///////////////////////////////////////////Add Button(Special)///////////////////////////////////
/**
* @class CParameterItemButtonBox
* @brief
*/
class CParameterItemButtonBox: public QDialogButtonBox,public CParameterItemControl
{
Q_OBJECT
public slots:
void slotZonesSizeChanged();
public:
pai::module::CParameterItem* CurrentParameterItem;
// PaiComboBox * m_cb_Zones;
/**
* @brief
* @param pParameterItem
* @param pParent
*/
CParameterItemButtonBox(pai::module::CParameterItem* pParameterItem,QWidget* pParent=0);
/**
* @brief QVariant并返回
*/
virtual QVariant GetDisplayValue() const;
/**
* @brief QVariant并返回
*/
virtual QVariant GetValue() const;
/**
* @brief
* @param varDisplayValue
*/
virtual void SetDisplayValue(const QVariant& varDisplayValue);
/**
* @brief
*/
virtual void SetValue(const QVariant& varValue);
};
///////////////////////////////////////////CheckBoxGROUP///////////////////////////////////
/**
* @class CParameterItemCheckBoxGroup
* @brief
*/
class CParameterItemCheckBoxGroup: public QGroupBox, public CParameterItemControl
{
Q_OBJECT
public:
/**
* @brief
* @param pParameterItem
* @param pParent
*/
CParameterItemCheckBoxGroup(pai::module::CParameterItem* pParameterItem,QWidget* pParent=0);
/**
* @brief QVariant并返回
*/
virtual QVariant GetDisplayValue() const;
/**
* @brief QVariant并返回
*/
virtual QVariant GetValue() const;
/**
* @brief
* @param varDisplayValue
*/
virtual void SetDisplayValue(const QVariant& varDisplayValue);
/**
* @brief
*/
virtual void SetValue(const QVariant& varValue);
/**
* @brief
*/
void installEventFilter(QObject * filterObj);
signals:
/**
* @brief
*/
void signalInternalIndexChanged();
private slots:
/**
* @brief radiobutton的点击
*/
void slotOnToggled(bool toggled);
};
}
}
/**
* @brief lineedit上
* @param eParamType
* @param pLineEdit
*/
extern void SetValidator(pai::module::ParameterType eParamType, QLineEdit *pLineEdit, bool isNessary = true);
#endif /* PAI_FRAME_WORKFLOWVIEW_PARAMETERITEMCONTROL_H_ */