Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Контекстное меню для конкретного виджета. [RSS Feed]

#1 Апрель 15, 2010 12:31:02

Bujhm666
От:
Зарегистрирован: 2010-03-23
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Контекстное меню для конкретного виджета.

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

Пишу:
self.label.contextMenuEvent(QtGui.QContextMenuEvent), так не работает. Перебрал уже кучи вариантов со всеми методами из QContextMenuEvent, так и не запустил. Помогайте пожалуйста, а может я вообще не то делаю?



Офлайн

#2 Апрель 15, 2010 14:22:33

Bujhm666
От:
Зарегистрирован: 2010-03-23
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Контекстное меню для конкретного виджета.

Я может несколько сумбурно представил задачу. Немного перефразирую. Если делаю так:

def contextMenuEvent(self, event):
menu = QtGui.QMenu(self)
menu.addAction(self.firstAct)
menu.addAction(self.secondAct)
menu.exec_(event.globalPos())
То все работает, контекстное меню создается, но на всех элементах формы, а мне надо только на некоторых. Вот как это реализовать не пойму.



Офлайн

#3 Апрель 15, 2010 16:17:19

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

Контекстное меню для конкретного виджета.

вешаем меню

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())



Офлайн

#4 Апрель 16, 2010 13:07:49

Bujhm666
От:
Зарегистрирован: 2010-03-23
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Контекстное меню для конкретного виджета.

Огромное спасибо!!!



Офлайн

  • Начало
  • » GUI
  • » Контекстное меню для конкретного виджета.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version