2014-03-06 98 views
3

我正在python GUI中使用pyqt4庫和新的信號和插槽。我不知道如何將活動放在標籤名稱QPLabel上。這裏是我的代碼:使用pyqt4 python QLabel上的可點擊事件?

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' 

任何人我應該怎麼做標籤上的事件做一些行動。

回答

9

更新以下行:

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

要:

self.QPLabel.mousePressEvent = self.doSomething 

event參數添加到doSomthing

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

這就是我所需要的。感謝幫助。 – Zeb

1

QLabel沒有信號clicked,所以你可以做以下之一:

A)從鼠標事件QLabel實現處理器派生自定義類。

B)使用標準QLabels實現Ui_Form中的事件處理程序,並將該表單安裝爲標籤的事件篩選器(self.QPLabel.installEventFilter (self))。