Qt属性表QtProperty添加可选下拉框属性列表
项目中,控件属性要求可以选择,就想着怎么做出combox的效果,最后在里面找到了QtVariantPropertyManager::enumTypeId(),这个属性,非常完美
效果图
代码
m_pVarManager = new QtVariantPropertyManager(ui->propertyTree);
m_pVarFactory = new QtVariantEditorFactory(ui->propertyTree);
connect(m_pVarManager, &QtVariantPropertyManager::valueChanged, this, &MainWindow::variantPropertyValueChanged);
QtProperty *groupItem = m_pVarManager->addProperty(QtVariantPropertyManager::groupTypeId(),QStringLiteral("Group1"));
QtVariantProperty *item = m_pVarManager->addProperty(QVariant::Int, QStringLiteral("Int: "));
item = m_pVarManager->addProperty(QtVariantPropertyManager::enumTypeId(), QLatin1String("事件组"));
QStringList enumNames;
enumNames << "事件1" << "事件2" << "事件3";
item ->setAttribute(QLatin1String("enumNames"), enumNames);
item ->setValue(1);
groupItem ->addSubProperty(item );
ui.widget->addProperty(groupItem);