鍍金池/ 問答/Python/ PyQt5中QGraphicsScene獲取mousePressEvent事件鼠

PyQt5中QGraphicsScene獲取mousePressEvent事件鼠標位置全都為0.0

問題描述

PyQt5中,想在QGraphicsScene的mousePressEvent中獲取鼠標位置,無論點哪,顯示的都是[0.0,0.0]

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

網(wǎng)上沒找到類似的問題

相關(guān)代碼

// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)

#這是繼承QGraphicsScene的自定義類
class CARscene(QtWidgets.QGraphicsScene):
    def __init__(self, parent=None):
        super(CARscene, self).__init__(parent)

    def mousePressEvent(self, QMouseEvent):
        #這行代碼是期望顯示坐標,奈何永遠都是[0.0, 0.0]
        print([QMouseEvent.pos().x(), QMouseEvent.pos().y()])

#這是主窗口的類,繼承自QtDesigner設(shè)計的界面    
class CDataMingQtUi(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
    super(CDataMingQtUi, self).__init__()
    self.setupUi(self)

    #CARgraphview 是一個QGraphicView的實例
    self.figure = plt.figure()
    self.canvas = FigureCanvas(self.figure)
    self.graph_sence = CARscene()
    self.graph_sence.addWidget(self.canvas)
    self.CARgraphview.setScene(self.graph_sence)
    

你期待的結(jié)果是什么?實際看到的錯誤信息又是什么?

期待顯示鼠標單擊的坐標
實際顯示的確是[0.0, 0.0],無論點哪都是這個值

回答
編輯回答
未命名

改成用scenePos

def mousePressEvent(self, event):
    QGraphicsScene.mousePressEvent(self, event)
    e = event.scenePos()
    print(e)
2017年1月5日 20:59