아래 코드를 인용했습니다. 문제는 설명하기 쉽습니다. 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