У вас есть две возможности:
sender ()
в слоте, который вернет действие, вызвавшее сигнал. Я бы подключился к QMenu "сработало" "сигнал, а не каждый QAction. Это дает вам QAction, который был выбран в качестве первого параметра.
void MyObject::menuSelection(QAction* action)
{
qDebug() << "Triggered: " << action->text();
}
void MyObject::showMenu(QPoint menuPos)
{
QMenu menu;
menu.addAction( "File A" );
menu.addAction( "File B" );
menu.addAction( "File C" );
connect(&menu, SIGNAL(triggered(QAction*)), this, SLOT(menuSelection(QAction*)));
menu.exec(menuPos);
}
В Qt у вас также есть доступ к отправителю: QObject :: sender
.