Qt d_ptr und Slots/Signals
-
Hallo zusammen,
ich bin gerade dabei mein Projekt auf Qt's d_ptr private implementation umzustellen, allerdings habe ich dabei mit den Signals/Slots ein paar kleine Probleme. Wenn ich jetzt in der Private Implementierung eine Slot Funktion definieren will, wie mache ich denn das? Die Private Klasse ist ja nicht von QObject abgeleitet, also kann ich auch das Q_SLOTS Makro nicht verwenden?
Irgendwie habe ich im Netz dazu keine passenden Infos gefunden, oder ich hatte die falschen Suchwörter.Danke für Eure Hilfe.
gruss
martin -
Qt verwendet dafür Q_PRIVATE_SLOT (siehe z.B. https://code.woboq.org/qt5/qtbase/src/widgets/kernel/qwidget.h.html#743 ) - aber warum willst Du alles auf d_ptr umstellen? Warum ist es nötig?
-
Für QtQuick / QML hatte ich mir ein Buch besorgt, dort hatte der Autor das Projekt mit Private Implementation durch gezogen. Nachdem ich mich dann Netz durchgesucht hatte was das ist, bin ich auf den Wiki Seiten von Qt zum Thema d-ptr,... hängen geblieben, daher hatte ich dann alles auf d-ptr umgestellt.
Ist das Q_PRIVATE_SLOT nicht für Qt Version < 5?
gruss
martin -
Keine Ahnung wie das in Qt4 ist - einfach mal nachschauen. Aber wenn man keinen Wert auf binärkompatibilität legen muss, braucht man auch keinen d-ptr. Und mit Qt4 würde ich nicht anfangen.