QLabelを継承して、クリックイベント処理を追加したいと思います。私はこのコードを試しています:
class NewLabel(QtGui.QLabel):
def __init__(self, parent):
QtGui.QLabel.__init__(self, parent)
def clickEvent(self, event):
print 'Label clicked!'
しかし、クリックした後、「ラベルがクリックされました!」という行がありません。
編集:
さて、今は「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()
しかし、自分自身には送信者オブジェクトはありません。私が間違ったことは何ですか?