python中QLabel上使用pyqt4的可点击事件?

2024-06-29 01:01:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python GUI中使用pyqt4库和新的signal和slots。我不知道如何将事件放在标签名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'

任何人,我应该为标签上的事件做些什么。


Tags: selfformsignaldef事件gui标签font
2条回答

QLabel没有信号,因此可以执行以下操作之一:

A)从实现鼠标事件处理程序的QLabel派生自定义类。

B)使用标准的QLabelsUi_Form中实现事件处理程序,并将表单安装为标签(self.QPLabel.installEventFilter (self))的事件筛选器。

更新以下行:

QtCore.QObject.connect(self.QPLabel, QtCore.SIGNAL(_fromUtf8("clicked()")), self.doSomething)

致:

self.QPLabel.mousePressEvent = self.doSomething

并将event参数添加到doSomthing

...
def doSomething(self, event):
...

相关问题 更多 >