是的,无需创建额外的插槽即可。只需将信号连接到信号即可:
connect(this,SIGNAL(someSignal()),this,SIGNAL(anotherSignal()));
文档中的更多信息。 http://doc.qt.io/qt-5/qobject.html#connect
Edit:
您可以像往常一样在连接中共享数据。肮脏的例子:
QWidget* obj = new QWidget;
obj->setWindowTitle("WindowTitle");
//share data, pass wrong data to the signal
QObject::connect(obj,SIGNAL(objectNameChanged(QString)),obj,SIGNAL(windowTitleChanged(QString)));
QObject::connect(obj,&QWidget::windowTitleChanged,[](QString str) {qDebug() << str;});
obj->setObjectName("ObjectName");
qDebug() << "But window title is"<< obj->windowTitle();
obj->show();
输出是:
"ObjectName"
But window title is "WindowTitle"
但没有办法做这样的事情:
connect(this,SIGNAL(someSignal()),this,SIGNAL(anotherSignal("with custom data")));
在这种情况下,您需要一个单独的插槽。