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);
本文介绍了如何在Qt项目中为属性表添加可选的下拉框属性列表,通过QtVariantPropertyManager和QtVariantEditorFactory实现。通过设置QtVariantPropertyManager的enumTypeId()属性,创建包含预定义选项的QtProperty,并展示了一个简单的示例代码,展示了如何添加和设置枚举类型的属性,从而达到类似ComboBox的效果。
657





