Qt - 画布上绘图

3

我正在尝试使用Qt5编写一个程序,允许用户在画布上绘制,就像使用画笔一样。

我知道程序必须处理事件,例如mousePressEvent()mouseReleaseEvent()mouseMoveEvent()。但是我不知道如何使用它们。

你们能否给我一个简单的例子?

1个回答

3

我提供了一个示例来展示这一点。 https://bitbucket.org/jsuppe/qt-paint

这个示例展示了:

  • 创建一个小部件并处理鼠标事件和绘制事件
  • 小部件包含一个与小部件相同大小的 QImage。
  • 当鼠标事件发生时,将像素坐标写入 QImage 中
  • 告诉小部件在 QImage 上的像素发生变化时重新绘制
  • 在 paintEvent 中绘制我的 QImage

我希望这有所帮助

更新:我已经将此样本更改为使用 QPainterPath 来绘制 QImage。旧方法仍然会直接绘制像素,但是 QPainterPath 具有更多的功能。我还添加了一个 QML 演示:https://bitbucket.org/jsuppe/qt-paint-2


很棒的应用!如果您在工作中有任何改进,请告诉我,谢谢。 - TomNg
我检查了代码,但是图像格式“Format_RGBA8888”不存在,应该替换为“Format_RGB888”。感谢这个应用程序。 - Hugo Bevilacqua
@HugoBevilacqua,谢谢,如果您有兴趣,我还做了一些其他更新。 - Klathzazt
1
我们可以仅使用QML而不使用QWidgets 来完成这个吗? - K Pradeep Kumar Reddy
@KPradeepKumarReddy,我创建了一个新的仓库,这是一个最小的QML示例,链接在这里:https://bitbucket.org/jsuppe/qt-paint-2 - Klathzazt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接