我想开发一个小应用程序,允许用户使用矩形来注释图像的不同部分。例如,用户可以在标有“head”的图像上绘制一个矩形,此app可以获取该矩形的参数(高度,宽度,中心坐标...)。 有时我还需要旋转此矩形以选择特定区域。
我想用Qt来实现我的想法,但我不知道如何:
答案 0 :(得分:1)
要绘制矩形用户,您需要在绘图窗口小部件中显示鼠标事件。您可以重新实现窗口小部件的mousePressEvent,mouseMoveEvent
,mouseReleaseEvent
或将event filter安装到此窗口小部件。当用户按下左键时,您应该记住事件的pos()
为矩形的左上角。当用户在此之后移动鼠标时,应设置移动事件的矩形ro pos()
的右下角。释放按钮必须提交创建矩形。
有几种方法可以绘制矩形。您可以实施paintEvent并在其中使用QPainter。但我认为最好的方法是使用QGraphicsScene。您可以创建可见的矩形,移动和旋转它们。