propriétés d'exécution dynamiques en QPropertyEditor
-
06-09-2019 - |
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!
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