2011-07-27 12 views
34

Odkrywam kod źródłowy Qt i natknąłem się na to makro Q_D. Czy ktoś mógłby wyjaśnić, co robi?Co robi makro Q_D w Qt

Prawie przez cały czas powinien zwracać widget typu podanego jako parametr, który jest zmienną d. Potrzebujesz więcej wyjaśnień na ten temat.

Odpowiedz

31

W skrócie, Qt używa prywatnego wdrożenia do zarządzania danymi. Dla klas, które to robią, zwykle jest klasa X i klasa XPrivate. Makro Q_D definiuje wskaźnik "d", więc jeśli napiszesz d-> cokolwiek, masz dostęp do tej prywatnej części danych.

Ten artykuł powinien prawie pokrywa większość pytań:

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

10

Q_D jest częścią realizacji Qt D-wskaźników lub wzoru pimpl (prywatny realizacji). Więcej informacji na ten temat można znaleźć na wiki Qt DevNet: http://developer.qt.nokia.com/wiki/Dpointer

+2

Link jest martwy. Aktualny link: https://wiki.qt.io/D-Pointer – HeyYO