Ich habe eine Klasse und möchte sie in einer Qvariante verwenden, daher muss ich den Meta-Typ deklarieren und registrieren. Das habe ich gemacht:
%Vor%Aber dieser Code gibt mir Fehler:
%Vor% Ich denke, ich muss meinen Met-Typ registrieren, aber ich bin mir nicht sicher, wo ich qRegisterMetaType<MyClass>("MyClass");
haben soll. Ich habe versucht, es nach dem Meta-Typ Deklarationsmakro zu haben, aber führte zu einem Fehler. Approciate jeden Kommentar oder Hinweis, der mich auf den richtigen Weg führt.
Objekte werden kopiert, wenn sie in eine QVariant
eingefügt werden, aber QObject
abgeleitete Klassen können nicht kopiert werden. Daher sollten Sie einen Zeiger auf Ihre Klasse verwenden.
Auch qRegisterMetaType<T>()
wird nur benötigt, um Ihr Objekt durch in Warteschlange gestellte Signal / Slot-Verbindungen zu senden.