我想继承QLabel添加那里点击事件处理。 我想这样的代码:PyQt - 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()
但没有发送者对象在自己。我做错了什么?
我不知道PyQt是如何工作的,但是你从QObject获得sender(),那么labelPressed插槽的类是否继承自QObject?它应该是因为它有一个槽...至少在C++中。 – 2009-06-08 08:19:34