试图从 pos() 方法 python 中获取 "x" 坐标

Trying to get just "x" coordinate from pos() method python

我目前在获取光标的 x 位置时遇到问题,因此我可以在该 x 和 y 位置上放置一个标记。单击鼠标时,我正在使用 QGraphicsScene 和视图在鼠标位置创建此圆形对象。由于 QGraphicsEllipseItem 需要 4 个参数,因此我似乎需要将 x 和 y 坐标分开,而不仅仅是位置方法给你的东西,因为它同时给出了 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()

非常感谢!

我不是 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 不存在,所以它会给您一个 AttributeError。