QComboBox绑定对象列表
qt QComBox绑定对象列表依靠的是QVariant
绑定数据到UI
for (QVector<Department>::const_iterator it=department.constBegin(); it!=department.constEnd(); ++it) { ui->departmentCB->addItem(it->Name,QVariant::fromValue(it->Id)); }
取数据
int departmentId=ui->departmentCB->itemData(ui->departmentCB->currentIndex()).toInt();
上面是绑定一个值,现在我们来绑定一个struct
先定义:
Q_DECLARE_METATYPE(MyStruct)
绑定:
ui->ItemCb->addItem(it.ItemNameBase,QVariant::fromValue<MyStruct>(it));
取值:
QVariant itemProperty=ui->ItemCb->currentData(Qt::UserRole);
MyStruct item = itemProperty.value<MyStruct>();
如果有更好的方法可以在评论中评论,本人对QVariant的了解还比较显浅。