Registrieren Sie einen Meta-Typ in Qt

7

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.

    
mrz 08.01.2013, 14:13
quelle

1 Antwort

19

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.

%Vor%

Auch qRegisterMetaType<T>() wird nur benötigt, um Ihr Objekt durch in Warteschlange gestellte Signal / Slot-Verbindungen zu senden.

    
cmannett85 08.01.2013, 14:17
quelle

Tags und Links