Ft: Der Rückgabewert des Signals funktioniert. Warum sagt das offizielle Dokument, dass dies unmöglich / verboten ist?

Qt Dokumentation sagt, Rückgabewerte von Signalen sind nicht möglich:

Signale werden vom MOC automatisch generiert und dürfen nicht in der CPP-Datei implementiert werden. Sie können niemals Rückgabetypen haben (d. H. Nichtig verwenden).

Verwandte SO-Fragen:

Können Qt-Signale einen Wert zurückgeben?Qt: Bedeutung des Slot-Rückgabewerts?

Aus meinen Versuchen (Qt 4.8.1) kann ich jedoch entnehmen, dass Rückgabewerte funktionieren:

Wenn Signal / Steckplatz im selben Thread sind, kann ConnectionType seinQt::AutoConnectionMit Signal / Slot in verschiedenen Threads muss ich verwendenQt::BlockingQueuedConnection

Also in meinem Code rufe ich ein Signal durch

QString dp = emit WscAircrafts::signalAircraftsJsonArray();

und das Signal moc gibt a zurückQString,

QString _t0;
void *_a[] = { const_cast<void*>(reinterpret_cast<const void*>(&_t0)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
return _t0;

Das hier ist der Slot Moc, an dem er dieQString

case 4: { QString _r = _t->slotAircraftJsonArray();
  if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = _r; }  break;

All dies scheint ziemlich einfach zu sein, warum also dieser Widerspruch mit der Dokumentation? Wo wäre das Problem mit dem Rückgabewert? Wie gesagt, in meinem Code scheint dies zu funktionieren.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage