试图从pos()方法获取“x”坐标python

时间:2015-06-17 13:57:55

标签: python position mouseevent pyqt4

我目前在获取光标的x位置时遇到问题,因此我可以在x和y位置放置标记。我正在使用QGraphicsScene并在单击鼠标时查看在鼠标位置创建此圆形对象。由于QGraphicsEllipseItem需要4个参数,我似乎需要将x和y坐标分开,而不仅仅是position方法给出的,因为它给出了x和y。如何将两个坐标分开?这是代码:

import sys
from PyQt4 import QtGui, QtCore    

def paintMarkers(self):
    self.cursor = QtGui.QCursor()
    self.x,y = self.cursor.pos()
    self.circleItem = QtGui.QGraphicsEllipseItem(self.x,self.y,10,10)
    self.scene.addItem(self.circleItem)
    self.circleItem.setPen(QtGui.QPen(QtCore.Qt.red, 1.5))
    self.setScene(self.scene)

def mousePressEvent(self,QMouseEvent):
    self.view.paintMarkers()

非常感谢!

1 个答案:

答案 0 :(得分:0)

我不是100%清楚你的问题是什么(你得到一个例外吗?它会运行但是你会得到意想不到的输出吗?),但这条线看起来像是罪魁祸首:

self.x,y = self.cursor.pos()

这将创建x作为self的属性,然后创建一个与y完全无关的本地变量self。如果您希望它们都是self的属性,请执行

self.x, self.y = self.cursor.pos()

如果您在尝试执行QGraphicsEllipseItem(self.x,self.y,10,10)时收到错误,这可以解释为什么 - self.y不存在,因此它会给您一个AttributeError。