Qt属性表QtProperty添加可选combox下拉框,添加属性列表

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中,我们可以使用QComboBox类向QTableView或QTableWidget控件中添加下拉框combobox)。下面是一个简单的示例代码: ``` // 创建一个 QComboBox 实例 QComboBox *comboBox = new QComboBox(); // 向下拉框添加选项 comboBox->addItem("选项1"); comboBox->addItem("选项2"); comboBox->addItem("选项3"); // 将下拉框设置为 QTableView 控件的编辑器 tableView->setItemDelegateForColumn(columnIndex, new QItemDelegate()); tableView->setItemDelegateForRow(rowIndex, new QItemDelegate()); tableView->setIndexWidget(tableView->model()->index(rowIndex, columnIndex), comboBox); ``` 在上面的代码中,我们首先创建了一个QComboBox实例,并使用addItem()方法向下拉框添加了3个选项。然后,通过setItemDelegateForColumn()和setItemDelegateForRow()方法将QItemDelegate设置为QTableView的委托,这样可以将下拉框作为QTableView控件的编辑器。最后,使用setIndexWidget()方法将下拉框添加到指定的单元格中。 这样,当用户在QTableView中双击某个单元格时,该单元格将显示为一个下拉框,用户可以从下拉列表中选择一个选项。 需要注意的是,上面的示例是针对QTableView控件的,如果你使用的是QTableWidget控件,可以直接调用setItem()方法将QComboBox添加到单元格中。具体用法类似,只是方法名和参数稍有不同。 这是一个简单的向QTableView或QTableWidget中添加下拉框的方法,你可以根据你的具体需求进行适当的修改和拓展。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值