Question

J'utilise le QPropertyEditor de Qt-Apps.org.

est-il possible de créer une classe avec des propriétés exposées où la quantité de propriétés est l'exécution dynamique? Ainsi, par exemple, vous avez une classe qui représente un vecteur de flotteurs avec une longueur arbitraire qui n'est pas connue au moment de la compilation. Vous avez donc un

vector<float> myFloats;

en tant que membre de la classe. Comment exposer cela comme une propriété avec la macro Q_PROPERTY. Ainsi, à la fin, je voudrais avoir la vue suivante dans le widget éditeur de propriétés:

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

Merci d'avance!

Était-ce utile?

La solution

En utilisant propriétés dynamiques ...

Dans votre classe u peut mettre à exécution les propriétés dynamiques de cette 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) );
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top