1. Создаешь меню (yourMenu), добавляешь в него все необходимые тебе экшены и хранишь его как член класса.
2. Добавляешь меню в MainWindow.
3. Для необходимого тебе виджета (yourWidget) используешь QWidget::setContextMenuPolicy(Qt::CustomContextMenu)
4. Создаешь слот с тамким содержимым:
void slotCntxMenu(const QPoint &point)
{
yourMenu->popup(yourWidget->mapToGlobal(point));
}
5. Делаешь такое соединение connect(yourWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotCntxMenu(QPoint)));
В итоге имеем одну менюшку.