如何获得信号/插槽机制的发件人小部件?

可以将多个信号绑定到一个插槽(不是?)。 那么,有没有办法了解哪个小部件发送信号? 我正在寻找类似于.NET中事件的sender参数

QObject::sender()将完成这项工作。

在插槽中使用QObject::sender() ,如下例所示:

 void MainWindow::someSetupFunction( void ) { ... connect( _foobarButton, SIGNAL(clicked()), this, SLOT(buttonPressedSlot()) ); } void MainWindow::buttonPressedSlot() { // eg check with member variable _foobarButton QObject* obj = sender(); if( obj == _foobarButton ) { ... } // eg casting to the class you know its connected with QPushButton* button = qobject_cast<QPushButton*>(sender()); if( button != NULL ) { ... } } 

是的,您可以将多个信号连接到一个插槽。 在这种情况下,您将使用QSignalMapper来区分信号的来源。 该解决scheme仅限于无参数信号。 你可以在这里看到一个例子。