Obtenir le nom du setter d'une QMetaProperty
Bonjour à tous !
Je développe actuellement un widget permettant d'éditer des "propriétés" à la manière d'un QtPropertyBrowser.
J'aimerai bien ajouter une fonction qui, prenant un QObject en paramètre, remplisse le QTreeView automatiquement.
Je rajoute un petit exemple, histoire que vous saisissiez bien :
admettons qu'une classe Point2D contienne deux int en private, myX, myY, et les traditionnels getters/setters : x() const, y() const, setX(int), setY(int).
Mon but est que le QTreeView fasse automatiquement les connections signal/slot. Ainsi, toute modification d'un item de l'arbre appellera setX ou setY sur l'instance de l'objet, c'est selon. J'espère que vous avez compris :aie:
Pour cela, je dois récupérer les noms des différents getters/setters d'un objet. J'identifie deux solutions :
- utiliser du tout fait : le système de meta-objet de Qt, et plus précisément le système de propriétés ;
- coder tout moi-même avec des macros. Ce serait je pense la bonne solution : le développeur pourrait choisir lui-même quelles propriétés de sa classe sont éditables dans le QTreeView. Pour vous donner une idée, le prototype de la macro serait calqué sur celui de Q_PROPERTY.
Deux questions donc :
- je ne réussis pas à obtenir le nom du setter d'une propriété en passant par QObject::metaObject(). Mais seulement le nom du getter avec QObject::metaObject()->property(index).name(). Savez-vous comment faire ?
- la 2ème solution vous semble-t-elle appropriée, et faisable sans trop de prise de tête ? :aie:
Merci à tous ! (et bonne nuit)