4

私は PyQt でプログラムに取り組んでおり、グリッドとそのグリッド上に移動してクリックできる一連のポリゴンを表示するウィジェットを作成しています。ポリゴンのクリックを実装しようとすると、うまくいかないようです。以下は機能しない機能です。

def mouseMoveCustom(self, e):
    for poly in reversed(self.polys):
        if poly.contains(e.pos()):
            self.cur_poly = poly
            self.setCursor(Qt.PointingHandCursor)
            print('mouse cursor in polygon')
            break
        else:
            self.setCursor(Qt.CrossCursor)

コンテキストでは、はマウスの位置self.polysのリストです。入ってみましたQPolygonse.pos()

print(poly)
print(poly.contains(QPoint(1,1)))

コントロールポイントで機能するかどうかをテストしますが、コンソールでは次のようにしか表示されません。

<PySide.QtGui.QPolygon(QPoint(50,350) QPoint(50,0) QPoint(0,0) QPoint(0,350) )  at 0x000000000547D608>
False

ここで間違っていることがありますか、または上記の「ポリゴン」を実際に使用できるものに変換するにはどうすればよいQPolygonですか?

編集:

リストの生成に使用されるコードは次のとおりself.polysです。

self.polys.append(QPolygon([QPoint(points[i][X]+self.transform[X], points[i][Y]+self.transform[Y]) for i in range(len(points))]))

インライン for ループを使用しQPolygonsてリストに追加すると、問題になる可能性がありますか?

4

1 に答える 1