1

我想开发一个小型应用程序,允许用户使用矩形来注释图像的不同部分。例如,用户可以在标有“头部”的图像上绘制一个矩形,这个应用程序可以获得这个矩形的参数(高度、宽度、中心坐标......)。有时我还需要旋转这个矩形来选择一个特定的区域。

我想使用 Qt 来实现我的想法,但我不知道如何:

  1. 获取用户绘制的矩形的参数。(高度,宽度,中心坐标...)
  2. 如何旋转矩形并获得旋转角度。
4

1 回答 1

1

要让用户绘制矩形,您需要获取绘图小部件中发生的鼠标事件。您可以重新实现小部件的mousePressEvent ,mouseMoveEventmouseReleaseEvent事件过滤器安装到此小部件。当用户按下左键时,您应该记住事件pos()是矩形的左上角。pos()当用户在此之后移动鼠标时,您应该设置移动事件的矩形 ro 的右下角。释放按钮必须提交创建一个矩形。

有几种方法可以绘制矩形。您可以实现paintEvent并在其中使用QPainter。但我认为最好的方法是使用QGraphicsScene。您可以创建可见的矩形,移动和旋转它们。

于 2012-07-08T13:59:25.427 回答