通過對堆棧溢出和其他站點的研究,我99%确定我遇到的問題是由于錯誤的導入。下面是我用來響應一些滑鼠事件的QLabel子類:import Qt
import sys
class ASMovableLabel(Qt.QLabel):
def mouseReleaseEvent(self, event):
button = event.button()
if button == 1:
print ('LEFT CLICK')
def mousePressEvent(self, event):
button = event.button()
if button == 1:
print ('LEFT CLICK')
elif button == 3:
print ('RIGHT CLICK')
self.setLayout()
def mouseMoveEvent(self, event):
print ("you moved the mouse: %f, %f", event.x, event.y)
self.frameRect.setTopLeft(Qt.QPoint(event.x, event.y))
當mouseMoveEvent被觸發時,我得到以下錯誤:
^{pr2}$
我見過的這種類型的錯誤的其他解決方案都是圍繞名稱空間的,是以我需要或不需要在所有Qt類之前包括Qt.,但是這個錯誤在Qt對象中要遠得多。請指出我的錯誤!在
我也嘗試過:from PyQt4 import Qt
它給出了同樣的錯誤
更新:根據Messa的評論,我做了一些修改:import Qt
import sys
class ASMovableLabel(Qt.QLabel):
def mouseReleaseEvent(self, event):
button = event.button()
if button == 1:
print ('LEFT CLICK')
def mousePressEvent(self, event):
button = event.button()
if button == 1:
print ('LEFT CLICK')
elif button == 3:
print ('RIGHT CLICK')
self.setLayout() #this won't set to nil
def mouseMoveEvent(self, event):
self.frameRect().setTopLeft(Qt.QPoint(event.globalX(), event.globalY()))
是以,在Python中,點文法似乎是函數調用,并且需要包括後面的“()”。這不包括self(即self().something())