переопределение mousePressEvent
void YourWidget::mousePressEvent(QMouseEvent *event)
{
QMenu menu(this);
QAction *action = menu.addAction("action");
if (menu.exec(event->pos()) == action) {
QMessageBox::information(this, "Next time I promise to google for the answers before asking");
}
}
вы также можете использовать фильтры событий для обработки событий щелчка мыши из виджетов, из которых вы не производны, т.е. если у вас есть q plain QLabel и вы хотите добавитьконтекстное меню к нему.Читайте в ассистенте о QObject::installEventFilter