web-dev-qa-db-fra.com

Que fait q_d macro dans qt

J'explore le code source QT et je suis tombé sur ceci Q_D macro. Quelqu'un pourrait-il s'il vous plaît expliquer ce qu'il fait?

Presque tout le temps, il devrait renvoyer un widget du type donné sous forme de paramètre qui est la variable d. Besoin de plus de clarification à ce sujet.

50
Tharanga

En bref, QT utilise la mise en œuvre privée pour gérer les données. Pour les cours qui font cela, il s'agit généralement d'une classe X et d'une classe de xprivate. La macro Q_D définit le pointeur "D", donc si vous écrivez D-> Peu importe, vous avez accès à cette partie de données privée.

Cet article devrait quasiment couvrir la plupart de vos questions:

https://wiki.qt.io/d-pointer

48
Tim Meyer

Q_d fait partie de la mise en œuvre de QT de D-pointeurs D ou du modèle PIMPL (mise en œuvre privée). Un peu plus d'informations sur tout cela se trouve sur le QT Devnet Wiki: https://wiki.qt.io/dpointer

16
leinir