美文网首页
QtVariantPropertyManager属性管理

QtVariantPropertyManager属性管理

作者: 田陌允 | 来源:发表于2021-04-26 17:59 被阅读0次

    使用qtpropertybrowser子库,在程序pro文件中添加:
    SUBDIRS += qtpropertybrowser
    qtpropertybrowser.file = $$PWD/3rdParty/qtpropertybrowser/qtpropertybrowser.pro

    使用:
    QtVariantPropertyManager m_manager;
    QtVariantEditorFactory m_factory;
    CPropertyEditorUIBase (继承自QtTreePropertyBrowser)

    ui->Editor->setFactoryForManager(&m_manager, &m_factory);
    
    connect(&m_manager, SIGNAL(valueChanged(QtProperty*, const QVariant&)),
                this, SLOT(onValueChanged(QtProperty*, const QVariant&)));//属性更改响应槽函数
    ...
    ...
    ...
    void CAttributesEditorUI::onValueChanged(QtProperty *property, const QVariant &val)
    {
            // QVariant &val 属性值(QVariant 容器可盛放几乎所有数据类型)
        ui->Editor->updateTooltip(dynamic_cast<QtVariantProperty*>(property));
    
        if (!m_scene || m_items.isEmpty())
            return;
    
        // no subprops
        if (!ui->Editor->topLevelItem(property))
            return;
    
        auto attrId = property->propertyName().toLatin1();//属性名称
        qDebug()<<"*****onValueChanged "<<attrId;
    
        for (auto sceneItem : m_items)
        {
            sceneItem->setAttribute(attrId, val);//属性设置,更改对象属性响应(改变尺寸大小等)
        }
    
        // store state
        m_scene->addUndoState();
    }
    

    相关文章

      网友评论

          本文标题:QtVariantPropertyManager属性管理

          本文链接:https://www.haomeiwen.com/subject/fdmerltx.html