如何使用QGraphicsView :: RubberBandDrag?

问题描述 投票:2回答:1

[有人可以提供关于如何使用RubberBandDrag中的QGraphicsView枚举值的解释,或者是更好的简短示例吗? PyQt5会很棒,但是如果对任何提供有用示例的人来说都是首选,我可以从C ++版本进行翻译。

NoDragScrollHandDrag相对容易理解(NoDrag使鼠标成为指针,您可以捕获某些位置的点击,ScrollHandDrag使鼠标成为手,并且可以实现单击并拖动来滚动),但是我不清楚RubberBandDrag的用途。

在有人说“去阅读文档”之前,这里是提供的信息

https://doc.qt.io/qt-5/qgraphicsview.html

枚举QGraphicsView :: DragMode

QGraphicsView :: RubberBandDrag

会出现橡皮筋。拖动鼠标将设置橡皮筋几何图形,并选择橡皮筋覆盖的所有项目。这个非交互视图的模式被禁用。

这很清楚,但是我不确定如何实际使用RubberBandDrag。初次放置后,有没有办法用它来拖动QPolygon的点?那将非常有用。

python pyqt pyqt5 qgraphicsview
1个回答
3
投票

QGraphicsView::RubberBandDrag标志仅用于激活内部的QGraphicsView::RubberBandDrag

QRubberBand

而且QRubberBand通常只旨在可视化所选区域,如果使用QGraphicsView,则选择该区域下方的项目(如果它们是可选择的(启用QGraphicsItem :: ItemIsSelectable标志)。


根据您的最后一个问题:是否有一种方法可以在初次放置后用它来拖动QPolygon的点?这将非常有用,在我看来,您有一个QRubberBand,因为在术语中使用drag似乎使您认为它可以拖动元素,因为不,拖动是指创建橡皮筋的方式。

一会儿,我将展示如何实现顶点的拖动以修改QPolygon

以下显示了如何通过拖动鼠标来修改顶点的位置:

enter image description here
© www.soinside.com 2019 - 2024. All rights reserved.