Boost.Signals允许使用槽的返回值形成信号的返回值的各种策略 。 例如添加它们,形成一个vector ,或返回最后一个。 Qt文档[编辑:以及这个问题的一些答案]中expression的共同的智慧是Qt信号不可能有这样的事情。 但是,当我在以下类定义上运行moc时: class Object : public QObject { Q_OBJECT public: explicit Object( QObject * parent=0 ) : QObject( parent ) {} public Q_SLOTS: void voidSlot(); int intSlot(); Q_SIGNALS: void voidSignal(); int intSignal(); }; moc不仅不抱怨非void返回types的信号,它似乎积极地实现它,以便允许返回值通过: // SIGNAL 1 int Object::intSignal() { int _t0; void *_a[] = { const_cast<void*>(reinterpret_cast<const void*>(&_t0)) }; QMetaObject::activate(this, &staticMetaObject, […]