Найти - Пользователи
Полная версия: Контекстное меню для конкретного виджета.
Начало » GUI » Контекстное меню для конкретного виджета.
1
Bujhm666
На форме много лабелов (QLabel), на некоторые из них нужно назначить контекстное меню. Читаю доку по PyQt:
QLabel.contextMenuEvent (self, QContextMenuEvent ev)

Пишу:
self.label.contextMenuEvent(QtGui.QContextMenuEvent), так не работает. Перебрал уже кучи вариантов со всеми методами из QContextMenuEvent, так и не запустил. Помогайте пожалуйста, а может я вообще не то делаю?
Bujhm666
Я может несколько сумбурно представил задачу. Немного перефразирую. Если делаю так:
def contextMenuEvent(self, event):
menu = QtGui.QMenu(self)
menu.addAction(self.firstAct)
menu.addAction(self.secondAct)
menu.exec_(event.globalPos())
То все работает, контекстное меню создается, но на всех элементах формы, а мне надо только на некоторых. Вот как это реализовать не пойму.
truporez
вешаем меню
l1 = QtGui.QLabel(u"Лейбл с меню:", self.frame)
l1.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
l1.customContextMenuRequested.connect(self.show_cmenu)
отрисовываем
def show_cmenu(self, p):
menu = QtGui.QMenu(self)
menu.addAction(self.tr("Item1"), self.item1_func)
menu.exec_(QtGui.QCursor.pos())
Bujhm666
Огромное спасибо!!!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB