QT and Symbian
QT right-click으로 popup menu 사용하기
leo21c
2015. 6. 18. 14:27
아래 싸이트를 참고하기 바랍니다.
http://www.setnode.com/blog/right-click-context-menus-with-qt/#fnref:viewportclasses
간단하게 설명하면 popup menu를 추가할 위젯에 속성 중 setContextMenuPolicy를 CustomContextMenu로 변경을 합니다.
signal/slot 편집기에서 widget을 선택하고 signal: customContextMenuRequested 을 이용합니다.
이 signal을 받을 slot 함수를 만들어 사용하면 됩니다.
slot 함수에서 QMenu를 만들고 Action을 추가해서 사용합니다.
// myWidget is any QWidget-derived class myWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(myWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(ShowContextMenu(const QPoint&)));
void MyClass::ShowContextMenu(const QPoint& pos) // this is a slot { // for most widgets QPoint globalPos = myWidget->mapToGlobal(pos); // for QAbstractScrollArea and derived classes you would use: // QPoint globalPos = myWidget->viewport()->mapToGlobal(pos); QMenu myMenu; myMenu.addAction("Menu Item 1"); // ... QAction* selectedItem = myMenu.exec(globalPos); if (selectedItem) { // something was chosen, do stuff } else { // nothing was chosen } }
LIST