|
| QtTips |
UserPreferences |
| serious-code.net | RecentChanges | ±â¼úÀÚ·á | ¸µÅ© | TitleIndex | ºí·Î±× |
// 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
}
} QPointF center = MainView->mapToScene(MainView->viewport()->rect().center());