J'ai un QMenu
qui a plusieurs éléments de menu construits dynamiquement. Pour cela, parcourez une collection d'éléments de menu, contenant le nom et l'action (qui devraient être pris si l'élément de menu a été touché), et continuez à les ajouter au menu contextuel. Tous les éléments de menu doivent être connectés à un emplacement commun.Travailler avec un QMenu et passer des arguments
Mais d'une manière ou d'une autre, l'action de déclenchement ne se produit pas. c'est-à-dire que l'instruction connect est atteinte, mais que le contrôle ne passe pas dans le SLOT spécifié, aucune action n'est prise.
for (int i=0; i<Action_List.size();i++)
{
tempAct1 = Action_List.at(i); //Action List has the list of Actions
Context_Menu->addAction(tempAct1);
}
if (Context_Menu!=NULL) {
Context_Menu->exec(QCursor::pos());
int r = connect(Context_Menu, SIGNAL(triggered(QAction *)),
this, SLOT(SPlusCommand(QAction *)));
}
int P14MainWindow::SPlusCommand (QAction* Action)
{
QVariant tempstr = Action->data();
QString Qs = tempstr.toString();
return QPwLocalClient::ExecuteCommand(Qs);
}
Quelqu'un peut-il me dire où je me trompe, s'il vous plaît?
Merci beaucoup. Ça a bien marché. – user1173240