我想继承QLabel以添加到那里,单击事件处理。我在尝试这个密码:
class NewLabel(QtGui.QLabel):
def __init__(self, parent):
QtGui.QLabel.__init__(self, parent)
def clickEvent(self, event):
print 'Label clicked!'但在点击后,我没有一行‘标签点击!’
编辑:
好的,现在我用的不是'clickEvent‘而是'mousePressEvent’。我还有个问题。我怎么知道到底是什么标签被点击了?例如,我有两个编辑框和两个标签。标签内容是像素映射。所以标签里没有文字,所以我看不出标签之间的区别。我怎么能这么做?
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()但在self中没有发送者对象。我做错了什么?
发布于 2009-06-07 21:04:12
在回答您的第二个问题时,我将继续使用@gnud示例:
发布于 2009-06-07 20:15:51
QWidget/QLabel中没有函数clickEvent。您可以将该函数连接到Qt信号,也可以:
class NewLabel(QtGui.QLabel):
def __init__(self, parent=None):
QtGui.QLabel.__init__(self, parent)
self.setText('Lorem Ipsum')
def mouseReleaseEvent(self, event):
print 'Label clicked!'发布于 2012-01-27 19:00:20
来自PyQt维基的答案很好,但是我要补充一点,clickable类应该调用widget.mouseReleaseEvent (就在return True之前),以防用户定制了这个事件。
https://stackoverflow.com/questions/962640
复制相似问题