1

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)

ブロックが移動可能になり、ブロックが移動するたびに新しい頂点を取得する必要があります。どうすればよいですか? self.block.boundingRect() を試しましたが、同じ RectF が得られます。誰かが私を助けてくれませんか。

4

1 に答える 1

3

QPolygonから派生QVectorするだけなので、通常の配列アクセサーを使用するだけです。ただし、それらはローカル座標になるため、シーン座標にマップする必要があります (「新しい頂点」という意味だと思います) - を使用しますblock.mapToScene( block.polygon()[i] )

于 2013-01-27T20:42:26.110 に答える