试图从 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。
我目前在获取光标的 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。