QObject::connect: Nicht Warteschlange Argumente vom Typ 'int&'

Habe ich versucht, dies zu tun :

connect(this, SIGNAL(signalClicked(int&)),  classA, SLOT(doWork(int&)));

Aber ich bekomme die Meldung im Titel.
So habe ich erforscht das internet und ich kam mit dieser Lösung, die nicht funktioniert entweder:

 qRegisterMetaType<int&>("Type");
 connect(this, SIGNAL(signalClicked(Type)),  classA, SLOT(doWork(Type)));

Fehler: keine passende Funktion für Aufruf von " qRegisterMetaType(const char[5])'

Irgendwelche Lösungen?

  • Tun Sie #include <QMetaType>?
  • Ja ich weiß, das ist, warum ich verstehe es nicht...
  • Vielen Dank für Ihre Antwort, aber ich habe bereits gefunden, diese Lösung hier: qtforum.org/article/36440/... und leider funktioniert es immer noch nicht.
  • Wo ist dein Q_DECLARE_METATYPE ?
  • Einfach unter die includes.
  • Laut Qt-Doku für qRegisterMetaType "Jede Klasse oder Struktur, das einen öffentlichen default-Konstruktor, einem öffentlichen copy-Konstruktor und eine öffentliche Destruktor registriert werden können.", was darauf hindeutet, es ist nur für Klassen und Strukturen. Jemand kann in der Lage sein, korrigieren Sie mich hier, aber ich glaube nicht, sollten Sie brauchen, um zu registrieren, den Typ int&.
  • Das ist genau das, was ich dachte.

InformationsquelleAutor Thibel | 2013-06-13
Schreibe einen Kommentar