Я не могу говорить за питон, но это довольно легко в C++.
первый после создания виджета вы можете настроить политику:
w->setContextMenuPolicy(Qt::CustomContextMenu);
затем при подключении события контекстного меню к слоту:
connect(w, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(ctxMenu(const QPoint &)));
Наконец, вы реализуете слот:
void A::ctxMenu(const QPoint &pos) {
QMenu *menu = new QMenu;
menu->addAction(tr("Test Item"), this, SLOT(test_slot()));
menu->exec(w->mapToGlobal(pos));
}
вот как вы это делаете в C++, не должно быть слишком различным в API-интерфейсе python.
EDIT: осмотрев на Google, вот часть установки моего, например, в Python:
self.w = QWhatever();
self.w.setContextMenuPolicy(Qt.CustomContextMenu)
self.connect(self.w,SIGNAL('customContextMenuRequested(QPoint)'), self.ctxMenu)
отмечает, что в PyQt4, CustomContextMenu место в пакете находится здесь: PyQt4.QtCore.Qt.CustomContextMenu –
Должны любить случайный downvote после двух лет и 19 upvotes :-P –
downvote был случайным, и я Мне очень жаль. Ответ мне очень помог. –