试图得到公正的回答;x";坐标from pos()方法python
我目前在获取光标的x位置时遇到了一个问题,因此我可以在该x和y位置上放置一个标记。我正在使用QGraphicscene和view在单击鼠标时在鼠标位置创建这个圆形对象。由于QGraphicsSellipseitem有4个参数,我似乎需要x和y坐标分开,而不仅仅是position方法给出的,因为它同时给出x和y。如何将这两个坐标分开?代码如下:试图得到公正的回答;x";坐标from pos()方法python,python,position,mouseevent,pyqt4,Python,Position,Mouseevent,Pyqt4,我目前在获取光标的x位置时遇到了一个问题,因此我可以在该x和y位置上放置一个标记。我正在使用QGraphicscene和view在单击鼠标时在鼠标位置创建这个圆形对象。由于QGraphicsSellipseitem有4个参数,我似乎需要x和y坐标分开,而不仅仅是position方法给出的,因为它同时给出x和y。如何将这两个坐标分开?代码如下: import sys from PyQt4 import QtGui, QtCore def paintMarkers(self): s
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()
非常感谢 我不是100%清楚您的问题是什么(您是否遇到异常?它是否运行但得到意外的输出?),但这一行看起来像是罪魁祸首:
self.x,y = self.cursor.pos()
这将创建x
作为self
的属性,然后创建一个与self
完全没有关联的局部变量y
。如果希望这两个属性都是self
,请执行以下操作
self.x, self.y = self.cursor.pos()
如果您在尝试执行
QGraphicsEllipseItem(self.x,self.y,10,10)
时出错,这将解释为什么-self.y
不存在,所以它会给您一个属性错误。好吧,是的,这是一个愚蠢的错误哈哈,但现在我得到了这个错误类型错误:“QPoint”对象不是Iterableh,我想你不能那样做。请尝试self.x,self.y=self.cursor.pos().x(),self.cursor.pos().y()
。好的,这似乎可行,但现在点的位置和我实际的鼠标光标之间有一点距离差异。这听起来像是一个完全不同的问题,所以也许你应该写一篇新文章。