QCombobox添加选项时绑定用户数据

QCombobox在添加或者插入下拉项时,可以绑定一个用QVariant封装的用户数据,这方便我们在获取当前选中项时,可以获取到这个用户数据,从而对着这个用户数据进行判断之类的(而不是通过这个选项的文本来进行判断),让代码更易读。

void QComboBox::addItem(const QString &text, 
                        const QVariant &userData = QVariant())

void QComboBox::insertItem(int index, 
                           const QString &text, 
                           const QVariant &userData = QVariant())

用法如下:

 我们先声明一个枚举

enum City{
  ZheJiang=0,
  HuBei,
  HuNan,
  GuangDong  
};

 然后添加拉下拉项

QComboBox* cbo=new QComboBox(this);

//绑定的数据不仅可以是枚举,也可以是其他基础类型,
//也可以是用户自定义类型,只要是能够用QVariant存储的类型
cbo->addItem("浙江",(int)City::ZheJiang);
cbo->addItem("湖北",(int)City::HuBei);
cbo->addItem("湖南",(int)City::HuNan);
cbo->addItem("广东",(int)City::GuangDong);

 然后绑定槽函数

connect(cbo,&QComboBox::currentIndexChanged,this,[=](){

//使用currentData()方法直接获取当前选择选项绑定的用户数据
//是一个QVariant
auto current_city=cbo->currentData();
//转换为真正的类型
City city=(City)current_city.toInt();
switch (city) {
  case City::ZheJiang:
  //do something
  break;
  case City::HuBei:
  //do something
  break;
  case City::HuNan:
  //do something
  break;
  case City::GuangDong:
  //do something
  break;
  default:
  break;
  }
});

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值