以下私のコードを引用しました。この問題は簡単に説明できます。 selectedItem-> textは、メニューで選択されたアクションを変更する正しい方法ではありません。どのようにそれを正しく行うには?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
}
}
***正しいことをする方法?***信号とスロットを使用する可能性が最も高いです。 QActionでトリガされた信号をRViewクラスのスロットに接続します。 – drescherjm