Nie mogę mówić za pytona, ale to jest dość łatwe w C++.
pierwszy po utworzeniu widget ustawisz zasadę:
w->setContextMenuPolicy(Qt::CustomContextMenu);
następnie zdarzenie menu kontekstowego podłączeniu do gniazda:
connect(w, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(ctxMenu(const QPoint &)));
Wreszcie, można zaimplementować gniazd:
void A::ctxMenu(const QPoint &pos) {
QMenu *menu = new QMenu;
menu->addAction(tr("Test Item"), this, SLOT(test_slot()));
menu->exec(w->mapToGlobal(pos));
}
to, jak to zrobić w języku C++, nie powinno być zbyt różne w interfejsie Pythona API.
EDIT: po rozglądając się na google, oto część konfiguracji mojego przykład w Pythonie:
self.w = QWhatever();
self.w.setContextMenuPolicy(Qt.CustomContextMenu)
self.connect(self.w,SIGNAL('customContextMenuRequested(QPoint)'), self.ctxMenu)
Zauważ, że w PyQt4, CustomContextMenu lokalizacja w opakowaniu jest tutaj: PyQt4.QtCore.Qt.CustomContextMenu –
Pokochałbyś losowych downvote po dwóch latach i 19 upvotes :-P –
downvote było przypadkowe i ja” naprawdę mi przykro. Odpowiedź rzeczywiście bardzo mi pomogła. –