c++ - QT可调整大小的橡皮筋

标签 c++ qt qt4 rubber-band

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

下一步是使该选择可以用鼠标调整大小。 因此,如果您单击并拖动一个角,大小会相应地发生变化,如果您在选区内单击并拖动,它应该会移动选区。

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

我想听听一些关于此的想法。 提前致谢。

最佳答案

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

希望对你有帮助

关于c++ - QT可调整大小的橡皮筋,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5729193/

相关文章:

c++ - 用于生成 pybind11 绑定(bind)的模板元函数

c++ - "Subscript needs array or pointer type"?和功能?

c++ - 如何将串口传入数据写入文本文件(.txt)

c++ - 使用 qSort 时遇到问题

c++ - 如何重振 C++ 技能

c++ - .def 文件等效于 OS X

linux - Qt 应用程序不显示图像

qt - 当我们使用 Qlabel 作为超链接文本时,如何在正常状态下删除超链接文本下方的行?

c++ - 用于 GUI 的 CSS 或 C++

c - 使用 QtCreator [mac os] 找不到 -lrt 的库