Согласно документации, возвращаемое из слота значение ничего не значит.
Однако в сгенерированном коде moc я вижу, что если слот возвращает значение, это значение для чего-то используется. Есть идеи, что он делает?
Вот пример того, о чем я говорю. это взято из кода, сгенерированного moc. 'message' - это слот, который ничего не возвращает, а 'selectPart' объявлен как возвращающий int.
case 7: message((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 8: { int _r = selectPart((*reinterpret_cast< AppObject*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])));
if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;