Python 正在检索PyQt4 QLabel mousepressevent的发件人
我正在用PyQt4编程一个接口,我正在使用QLabel,并使用MousePresseEvent函数使它们可以单击。我有多个标签(信号)具有相同的mousepressevent插槽。以下是我想做的要点Python 正在检索PyQt4 QLabel mousepressevent的发件人,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,我正在用PyQt4编程一个接口,我正在使用QLabel,并使用MousePresseEvent函数使它们可以单击。我有多个标签(信号)具有相同的mousepressevent插槽。以下是我想做的要点 class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): l
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
lbl1=QtGui.QLabel(self)
lbl2=QtGui.QLabel(self)
lbl1.mousePressEvent=self.exampleMousePress
lbl2.mousePressEvent=self.exampleMousePress
def exampleMousePress(self,event):
print "The sender is: " + sender().text()
问题是发送方函数在这里不起作用。有没有办法在exampleMousePress函数中获取事件发送者
谢谢大家! 您可以使用来执行此操作:
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
lbl1 = QtGui.QLabel(self)
lbl2 = QtGui.QLabel(self)
lbl1.installEventFilter(self)
lbl2.installEventFilter(self)
def eventFilter(self, source, event):
if event.type() == QtCore.QEvent.MouseButtonPress:
print "The sender is:", source.text()
return super(Example, self).eventFilter(source, event)
您可以使用来执行此操作:
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
lbl1 = QtGui.QLabel(self)
lbl2 = QtGui.QLabel(self)
lbl1.installEventFilter(self)
lbl2.installEventFilter(self)
def eventFilter(self, source, event):
if event.type() == QtCore.QEvent.MouseButtonPress:
print "The sender is:", source.text()
return super(Example, self).eventFilter(source, event)
事件与信号不同。它们是两个独立的系统。信号有发送者。事实并非如此。作为发送者,您希望在这里接收什么小部件?您不能使用按钮发送信号吗?您可以更改按钮的样式表,使其看起来像标签一样平坦。对于这个程序,我特别需要一个标签,而不是按钮。谢谢你的澄清Brendan事件和信号不一样。它们是两个独立的系统。信号有发送者。事实并非如此。作为发送者,您希望在这里接收什么小部件?您不能使用按钮发送信号吗?您可以更改按钮的样式表,使其看起来像标签一样平坦。对于这个程序,我特别需要一个标签,而不是按钮。谢谢你的澄清,布伦丹。