我使用pyqt4库在python GUI中工作,使用信号和插槽新工作。我不知道如何将事件放在标签名QPLabel
上。这是我的代码:
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(759, 598)
font = QtGui.QFont()
font.setPointSize(12)
...
...
...
self.QPLabel = QtGui.QLabel(Form)
self.QPLabel.setGeometry(QtCore.QRect(620, 420, 141, 20))
QtCore.QObject.connect(self.QPLabel, QtCore.SIGNAL(_fromUtf8("clicked()")), self.doSomething)
def doSomething(self):
print 'Label click'
任何人我应该为标签上的事件做些什么来做某些动作。
答案 0 :(得分:18)
更新以下行:
QtCore.QObject.connect(self.QPLabel, QtCore.SIGNAL(_fromUtf8("clicked()")), self.doSomething)
要:
self.QPLabel.mousePressEvent = self.doSomething
并将event
参数添加到doSomthing
...
def doSomething(self, event):
...
答案 1 :(得分:2)
QLabel
没有信号clicked
,因此您可以执行以下操作之一:
A)从实现鼠标事件处理程序的QLabel
派生自定义类。
B)使用标准Ui_Form
在QLabels
中实施事件处理程序,并将表单安装为标签的事件过滤器(self.QPLabel.installEventFilter (self)
)。