Qt-Dokumentation sagt, Rückgabewerte von Signalen sind nicht möglich:
Signale werden automatisch vom Moc erzeugt und dürfen nicht sein in der CPP-Datei implementiert. Sie können niemals Rückgabetypen haben (d. H. Verwenden Sie void).
Verwandte SO-Fragen:
Aus meinen Versuchen (Qt 4.8.1) kann ich jedoch sagen, dass die Rückgabewerte funktionieren:
Qt::AutoConnection
sein.
Qt::BlockingQueuedConnection
verwenden
Also in meinem Code rufe ich ein Signal an
%Vor% und das Signal moc gibt eine QString
,
Hier ist der Slot-Moc, wo er die QString
All das scheint ziemlich geradlinig zu sein, warum also dieser Widerspruch mit der Dokumentation? Wo wäre das Problem mit dem Rückgabewert? Wie gesagt, in meinem Code scheint das zu funktionieren.
Das Problem besteht darin, dass die Rückgabetypen bei der Verbindungszeit nicht auf Kompatibilität geprüft werden, so dass zum Beispiel ein doppelt zurückkehrender Slot mit einem float-returning-Signal verbunden wird schweben.
Tags und Links qt qt4 qt-signals