ci-dessous j'ai cité mon code. Le problème est facile à décrire. selectedItem-> text n'est pas la bonne façon de différencier l'action sélectionnée dans le menu. Comment le faire correctement?identifier un déclencheur de QAction
void RView::ShowContextMenu(const QPoint& pos) // this is a slot
{
// for most widgets
QPoint globalPos = statusWidget->mapToGlobal(pos);
// for QAbstractScrollArea and derived classes you would use:
// QPoint globalPos = myWidget->viewport()->mapToGlobal(pos);
QMenu myMenu;
myMenu.addAction("first");
myMenu.addAction("second");
QAction* selectedItem = myMenu.exec(globalPos);
if (selectedItem)
{
if(selectedItem->text == "first")
// do something
if(selectedItem->text == "second")
// do other stuff
}
else
{
// nothing was chosen
}
}
*** Comment faire les choses correctement? *** Utilisation la plus probable de signaux et de slots. Connectez votre (vos) signal (s) déclenché (s) QAction aux slots de votre classe RView. – drescherjm