Я хочу наследовать QLabel, чтобы добавить туда обработку событий клика.
Я пытаюсь этот код:
class NewLabel(QtGui.QLabel):
def __init__(self, parent):
QtGui.QLabel.__init__(self, parent)
def clickEvent(self, event):
print 'Label clicked!'
Но после нажатия у меня нет строки «Метка нажата!»
EDIT:
Хорошо, теперь я использую не «clickEvent», а «mousePressEvent». И у меня все еще есть вопрос. Как я могу узнать, на какую именно метку нажали? Например, у меня есть 2 поля ввода и 2 метки. Содержимое меток - это растровые изображения. Так что в ярлыках нет текста, поэтому я не могу различить разницу между ярлыками. Как я могу это сделать?
EDIT2:
Я сделал этот код:
class NewLabel(QtGui.QLabel):
def __init__(self, firstLabel):
QtGui.QLabel.__init__(self, firstLabel)
def mousePressEvent(self, event):
print 'Clicked'
#myLabel = self.sender() # None =)
self.emit(QtCore.SIGNAL('clicked()'), "Label pressed")
В другом классе:
self.FirstLang = NewLabel(Form)
QtCore.QObject.connect(self.FirstLang, QtCore.SIGNAL('clicked()'), self.labelPressed)
Слот того же класса:
def labelPressed(self):
print 'in labelPressed'
print self.sender()
Но в себе нет объекта-отправителя. Что я сделал не так?