Je veux hériter de QLabel pour y ajouter le traitement des événements de clic. J'essaie ce code:PyQt - QLabel héritant
class NewLabel(QtGui.QLabel):
def __init__(self, parent):
QtGui.QLabel.__init__(self, parent)
def clickEvent(self, event):
print 'Label clicked!'
Mais après avoir cliqué sur je n'ai pas la ligne 'étiquette clic!
EDIT:
Ok, maintenant je me sers pas 'clickEvent' mais 'mousePressEvent'. Et j'ai encore une question. Comment puis-je savoir sur quoi exactement l'étiquette a été cliquée? Par exemple, j'ai 2 boîte d'édition et 2 étiquettes. Le contenu des étiquettes sont des pixmaps. Donc, il n'y a pas de texte dans les étiquettes, donc je ne peux pas discerner la différence entre les étiquettes. Comment puis je faire ça?
EDIT2: J'ai fait ce code:
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")
Dans une autre classe:
self.FirstLang = NewLabel(Form)
QtCore.QObject.connect(self.FirstLang, QtCore.SIGNAL('clicked()'), self.labelPressed)
fente dans la même classe:
def labelPressed(self):
print 'in labelPressed'
print self.sender()
Mais il n'y a pas expéditeur objet en soi. Qu'est-ce que j'ai fait de mal?
Je ne sais pas comment fonctionne PyQt mais vous obtenez sender() de QObject, la classe avec le slot labelPressed hérite-t-elle de QObject? il devrait puisqu'il a un slot ... au moins en C++. –