2010-10-28 1 views
2

Nous avons une application avec une hiérarchie complexe de widgets et je veux être capable de parcourir cette hiérarchie, afficher et éditer des propriétés (telles que la taille) de la même manière que Spy ++. Il n'a pas besoin d'être exécuté dans une application externe, si un widget peut afficher cette information. La question est donc: existe-t-il une telle bête mythique?Y at-il un widget Qt pour parcourir la hiérarchie des widgets dans une application (similaire à Spy ++)?

Répondre

3

vous pouvez utiliser pour Gammaray espion Widget et la fente du signal et des minuteries et des ressources, etc Gammaray est très puissant outil pour espionnage Application Qt

3

L'approche habituelle consiste à créer une telle bête en interne, en utilisant les API d'introspection et en parcourant la hiérarchie parent-enfant QWidget. C'est assez facile d'en construire un basique; Si vous voulez construire un éditeur de propriétés complet, c'est beaucoup plus de travail. Il y a probablement du code que vous pouvez réutiliser pour réduire le travail - peut-être même le code de l'inspecteur de propriétés de Designer, même si cela peut être exagéré. Je ne suis jamais allé aussi loin que l'interface graphique complète, en raison de contraintes de temps - J'ai simplement jeté la hiérarchie et certaines propriétés fixes à stdout comme du texte ou XML. Je suppose qu'il serait plausible d'en faire un composant GUI réutilisable, qui pourrait être déposé dans une application arbitraire, rechercher des widgets de haut niveau, et permettre que tout soit inspecté, si vous avez le temps et inclination.

+0

je me suis dit que c'était probablement le cas. Honte vraiment car ce serait un composant assez utile, et probablement pas si difficile à faire étant donné la puissance du concept 'QAbstractItemModel'. –