wie gehen qobject als argument von signal-slot von qt verbinden

Mein original-code übergeben eine QStringList aus das signal an den slot und dann wieder eine QList. Alles funktionierte gut, aber ich brauchte, um zu ändern, sowohl die QStringList und QList in 2 unterschiedliche Unterklassen QObjects. Seitdem habe ich wurde empfangen Fehler wie "synthetisiert Methode zuerst hier" oder es einfach abstürzt, ohne Fehlermeldung.

Ich verstehe, dass qt kopiert alle übergebenen Argumente in eine Warteschlange Verbindung und ein qobject kann nicht kopiert werden. Also anstatt ein qobject ist, dachte ich, ich würde beide qobjects, die vor dem aussenden des Signals. Dann würde ich pass Referenzen auf jedes Objekt, ändern Sie Sie in den Steckplatz Funktion und void ist der Rückgabewert. Leider ist die app immer noch abstürzt, egal, wie ich code das signal-und slot-Funktionen. Wie kann ich code das signal/slot-Funktionen und verbinden Sie entweder pass qobjects, die als Argumente oder return ein qobject?

MyQObject1 obj1("a","b","c");
MyQObject2 obj2();
emit sendSignal(&obj1, &obj2);
//or
MyQObject2 obj2 = emit sendSignal(&obj1);

connect(someObj, SIGNAL(sendSignal(const QObject&)), this, SLOT(receiveSignal(const QObject&)));

Den receiveSignal () - Funktion nicht direkt erstellen oder ändern alle qobject. Es hat zum bestehen der qobjects, um eine andere Funktion, die ersten, die dann entweder ändert obj2 oder erstellt, und gibt es zurück. Alle code-Beispiele würde sehr geschätzt werden.

InformationsquelleAutor luxtor | 2013-08-02

Schreibe einen Kommentar