QT可调整大小的橡皮筋

时间:2011-04-20 10:59:40

标签: c++ qt qt4 rubber-band

我想创建一个可调整大小的选择工具,用鼠标选择图像的一部分。 我想用QT完成这个,我有一个工作的QRubberBand来创建一个基本的选择。

下一步是使用鼠标重新调整选择。 因此,如果您点击并拖动一个角,则尺寸会相应更改,如果您单击并在选区内拖动,则应移动选区。

现在我的想法是继承QRubberBand并覆盖paintEvent方法,在每个角上绘制一个大点并在这些点上执行鼠标事件。 但我想知道是否有人有更聪明/更好的方法来做这件事?

我想听听有关这方面的一些想法。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

之前我做过类似的事情。我使用QGraphicsView而不是QWidget,这使得开发更容易。我用QGraphicsItem作为“橡皮筋”。 QGraphicsView已经处理了很多用户交互,因此我不必费心去重新实现QWidget :: mouseMove()事件等。由于QGraphicsView优化,性能比QWidget要快得多。

希望这有帮助

答案 1 :(得分:0)

我刚刚为我的Qt图像和矢量查看器实现了任意交互式叠加图形的通用框架。请在https://github.com/dov/Qviv/tree/Lasso/Lasso中查看分支Lasso。您可以使用scons对其进行编译,然后运行testLasso进行测试。目前,该测试实现了可移动的半透明卡尺,但您可以轻松地将其更改为您想要的任何图形。请注意,Lasso子目录当前完全独立于Qviv项目的其余部分。

相关问题