我目前在获取光标的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()
非常感谢!
答案 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。