53 votes

Que fait la macro Q_D dans Qt ?

Je suis en train d'explorer le code source de Qt et je suis tombé sur ceci Q_D macro. Quelqu'un pourrait-il m'expliquer ce qu'elle fait ?

Presque toujours, il devrait renvoyer un widget du type donné en paramètre, c'est-à-dire le type d variable. Il est nécessaire de clarifier ce point.

51voto

Tim Meyer Points 5480

En bref, Qt utilise une implémentation privée pour gérer les données. Pour les classes qui font cela, il y a généralement une classe X et une classe XPrivate. La macro Q_D définit le pointeur "d" de sorte que si vous écrivez d->quelque chose, vous avez accès à cette partie privée des données.

Cet article devrait répondre à la plupart de vos questions :

https://wiki.qt.io/D-Pointer

18voto

leinir Points 559

Q_D fait partie de l'implémentation de Qt des pointeurs d, ou du modèle pimpl (implémentation privée). Vous trouverez un peu plus d'informations à ce sujet sur le wiki de Qt DevNet : https://wiki.qt.io/D-Pointer

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X