You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWATI/Include/iBase/iPlugin/ZxComboBoxCbxRadio.h

69 lines
1.6 KiB
C

#pragma once
#include <QComboBox>
#include "Defines.h"
#include "iPlugin_global.h"
class ZxComboBoxCbxRadioWx;
// 方案一:
// 自定义Combobox支持CheckBox、Radio双重选
// 与 ZxComboBoxCbxRadioWx 一起实现该功能
class I_PLUGIN_EXPORT ZxComboBoxCbxRadio :public QComboBox
{
Q_OBJECT
public:
explicit ZxComboBoxCbxRadio(QWidget* parent = 0);
~ZxComboBoxCbxRadio();
void setInfos(QStringList& listAllItems, \
QStringList listCbxs = QStringList(), \
QString sRadio = "");
/// @brief 参数传递,确定默认值
/// @param listAllItems 所有数据项
/// @param vecIndexCbxs 复选项索引,默认为空
/// @param indexRadio 单选项索引,默认为-1
/// @note 如果indexRadio为-1且vecIndexCbxs非空
/// 则指定indexRadio为vecIndexCbxs第一个
void setInfos(QStringList& listAllItems, \
QVector<int> vecIndexCbxs = VecInt(), \
int indexRadio = -1);
public:
virtual void showPopup();
virtual void hidePopup();
private:
void makesureSubWx();
public slots:
/// @brief 选择改变
/// @param vecIndexCbxs 复选项索引,非空
/// @param indexRadio 单选项索引,>= 0
/// @note 如果不满足上述条件,则不触发
void slotSelChanged(const VecInt vecIndexCbxs, \
const int indexRadio);
protected:
//重写失去焦点事件
void focusOutEvent(QFocusEvent *e);
signals:
// 选择改变
void sigSelChanged(const VecInt, const int);
private:
ZxComboBoxCbxRadioWx* m_pWxSub;
};