В зависимости от того, как вы настроили ContextMenuPolicy в QWidget
, у вас есть несколько вариантов.
Если вы установили Qt::DefaultContextMenu
, просто переопределите защищенную функцию contextMenuEvent(QContextMenuEvent*)
в QWidget
. Я считаю, что это по умолчанию.
Если вы установили его на Qt::ActionsContextMenu
, просто добавьте все свои действия в ваш виджет и позвольте системе Qt обрабатывать отображение контекстного меню.
Или, если вы установили его на Qt::CustomContextMenu
, вам необходимо подключиться к сигналу customContextMenuRequested()
и реализовать собственный обработчик контекстного меню.
Все это описано в документации ContextMenuPolicy , доступной в Интернете.