Как передать QString в слот Qt из QMenu через QSignalMapper или иным образом

У меня есть QMenu со многими подменю. Они создаются динамически, то есть меню имен поступают из БД и создаются в цикле. Теперь я хотел запустить тот же слот triggered () или аналогичный при щелчке меню, но мне нужно было передать имя меню QString в слот, чтобы я мог выполнять действия, специфичные для меню. я пыталсяэтот то есть передача QAction * к инициированному событию и использование setData, но я получаю ошибку во время выполнения.

object :: connect: нет такого сигнала QAction :: triggered (QAction *)

for(int j=0; jaddAction(tr(c_name)); // c_name the menu name
        subMenuAct->setData(ch_name);
        connect(subMenuAct, SIGNAL(triggered(QAction *)), this, SLOT(playChannel(QAction *))); // playChannel is the slot
}

void ::playChannel(QAction *channelAction)
{
     QString str = channelAction->data().toString();
    qDebug() < "Selected - " < str;
}

Ответы на вопрос(1)

Ваш ответ на вопрос