[quote=引用 3 楼 南京短暂的春天 的回复:] [quote=引用 2 楼 Thealeh 的回复:] [quote=引用 1 楼 南京短暂的春天 的回复:] 你的界面刷新周期是多少? 建议你用QGraphicsView来做,你可以减少很多麻烦。 如果你单纯用paintEvent来做,就需要有一个容器去存放所有的点。 再到mousepressEvent中去根据点击的坐标来换算成实际数据内容。
[quote=引用 2 楼 Thealeh 的回复:] [quote=引用 1 楼 南京短暂的春天 的回复:] 你的界面刷新周期是多少? 建议你用QGraphicsView来做,你可以减少很多麻烦。 如果你单纯用paintEvent来做,就需要有一个容器去存放所有的点。 再到mousepressEvent中去根据点击的坐标来换算成实际数据内容。
[quote=引用 1 楼 南京短暂的春天 的回复:] 你的界面刷新周期是多少? 建议你用QGraphicsView来做,你可以减少很多麻烦。 如果你单纯用paintEvent来做,就需要有一个容器去存放所有的点。 再到mousepressEvent中去根据点击的坐标来换算成实际数据内容。
你的界面刷新周期是多少? 建议你用QGraphicsView来做,你可以减少很多麻烦。 如果你单纯用paintEvent来做,就需要有一个容器去存放所有的点。 再到mousepressEvent中去根据点击的坐标来换算成实际数据内容。
Painter>。QPainter是Qt绘图系统的核心类,用于在窗口或图形对象上绘制线条、形状和文本。我们可以选择QWidget或QGraphicsView作为绘图区域,用户可以在该区域进行交互操作。 接下来,我们将创建一个自定义的QWidget子类,命名为ImageEditorWidget,并重写paintEvent(QPaintEvent *)方法。在该方法中,我们将利用QPainter实例来绘制图片和用户绘制的图形。为了加载和显示图片,可以使用QImage类读取图片文件,并通过QPainter::drawImage()函数将其绘制到画布上。为了实现点击添加图片的功能,我们需要捕获QMouseEvent事件。当用户点击时,可以弹出一个文件对话框,让用户选择图片,然后将图片加载到QImage对象中,并更新paintEvent()方法以便在新图片上进行绘制。 对于在图片上绘制线条、矩形和圆形的功能,我们可以通过定义多个布尔标志(如isDrawingLine、isDrawingRect、isDrawingCircle)来跟踪当前的绘图模式。在mouseMoveEvent(QMouseEvent *)中,根据当前的绘图模式,可以使用QPainter::drawLine()、QPainter::drawRect()或QPainter::drawEllip
16,818
社区成员
26,684
社区内容
加载中
试试用AI创作助手写篇文章吧