我想繼承QLabel添加那裏點擊事件處理。 我想這樣的代碼:PyQt - QLabel繼承
class NewLabel(QtGui.QLabel):
def __init__(self, parent):
QtGui.QLabel.__init__(self, parent)
def clickEvent(self, event):
print 'Label clicked!'
但點擊後,我沒有線「的標籤點擊!
編輯:
好吧,現在我使用的不是 'clickEvent',但 'mousePressEvent'。我仍然有一個問題。我怎麼知道標籤被點擊的是什麼?例如,我有2個編輯框和2個標籤。標籤內容是像素圖。所以標籤中沒有任何文字,所以我無法辨別標籤之間的區別。我怎樣才能做到這一點?
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()
但沒有發送者對象在自己。我做錯了什麼?
我不知道PyQt是如何工作的,但是你從QObject獲得sender(),那麼labelPressed插槽的類是否繼承自QObject?它應該是因爲它有一個槽...至少在C++中。 – 2009-06-08 08:19:34