Pergunta

Eu estou usando o QPropertyEditor de Qt-Apps.org.

É possível criar uma classe com propriedades expostas onde a quantidade de propriedades é tempo de execução dinâmico? Assim, por exemplo, você tem uma classe que representa um vector de carros alegóricos com um comprimento arbitrário que não é conhecido em tempo de compilação. Então você tem um

vector<float> myFloats;

como um membro da classe. Como para expor isso como uma propriedade com o macro Q_PROPERTY. Então, no final, eu gostaria de ter o seguinte vista no widget editor de propriedade:

  • MyClass
    • valor de myFloats [0]
    • valor de myFloats [1]
    • valor de myFloats [2] ... ...

Agradecemos antecipadamente!

Foi útil?

Solução

Ao usar propriedades dinâmicas ...

Na sua classe u pode definir em tempo de execução as propriedades dinâmicas de que a classe

DynamicPropertiesClassForQPropertyEditor()
{
    QVector<int> properties;
    ///.... fill in thevalues
    for (int i=0 ; i!=properties.size() ; ++i )
    {
        const QString propertyName = QString( "value of properties[%1]").arg(i);
        setProperty( qPrintable(propertyName) ,properties.at(i) );
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top