python - 获取 QPolygonF 的顶点

标签 python qt pyqt4 qgraphicsview qgraphicsscene

我需要获取 QPolygonF 的顶点。这是我到目前为止的代码

class Example(QtGui.QGraphicsScene):
    def block(self): 
        self.bpoint1 = QtCore.QPointF(150 , 150)
        self.bpoint2 = QtCore.QPointF(200 , 150)
        self.bpoint3 = QtCore.QPointF(200 , 200)
        self.bpoint4 = QtCore.QPointF(150 , 200)
        self.bproto = QtGui.QPolygonF([self.bpoint1 , self.bpoint2 , self.bpoint3 , self.bpoint4])
        self.block = QtGui.QGraphicsPolygonItem()
        self.block.setPolygon(self.bproto)
        self.block.setFlag(QtGui.QGraphicsItem.ItemIsMovable)

我的 block 现在变得可移动了,每次移动我的 block 时我都需要获取新的顶点。我该怎么做?我尝试了 self.block.boundingRect() ,但它给了我相同的 RectF 。有人可以帮我吗?

最佳答案

QPolygon 只是派生自 QVector,因此只需使用普通的数组访问器即可。但它们将位于本地坐标中,因此需要将它们映射到场景坐标(我假设这就是您所说的“新顶点”) - 使用 block.mapToScene( block.polygon()[i] ).

关于python - 获取 QPolygonF 的顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14551962/

相关文章:

python - 根据其他两个数据框列中的值条件创建新列

python - 我应该在 Windows 7 中使用 Python 2.7 32 位还是 64 位

python - pyqt 将枚举值转换为键

qt - 在 Ubuntu 10.04 Lucid Lynx 中运行 Qt 4.7 应用程序

PyQt4 - "RuntimeError: underlying C/C object has been deleted"

python - QTableWidgetItem ESC 信号按下

python - 使用 Pandas DataFrame 中其他两列的键和值创建字典列

当操作数为负数时,Python 除法运算符表现得很奇怪

c++ - 在 Windows 上安装 libusb 以与 Qt 一起使用

QTCreator : Use qt project into another