有没有办法从 Qt 中的另一个信号触发信号?

Is there a way trigger a signal from another signal in Qt?

我已经有了一个应用程序,现在正在调整它。在这方面,我正在引入一个新信号,当另一个信号被发射时,它必须被发射。这在 Qt 中可能吗?

写一个插槽只是为了发出这个信号感觉很原始和蹩脚...

进一步详细说明,我必须将按钮 signalClicked() 连接到我自己的信号,比如 sendSignal(enumtype)...

编辑:忘了说我需要用第二个信号发送数据。

是的,无需创建额外的插槽即可。只需将信号连接到信号:

connect(this,SIGNAL(someSignal()),this,SIGNAL(anotherSignal()));

More information in doc.

编辑:

您可以像往常一样在连接中共享数据。肮脏的例子:

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")));

在这种情况下,您需要一个单独的插槽。