需要一些Qt绘画课程的帮助

时间:2009-11-06 01:58:22

标签: c++ qt paint

我正在尝试编写一个绘图程序(在检测到鼠标按下/保持的情况下绘制),但我在使用Qt QPainter时遇到问题。我已经在他们的网站上阅读了文档,我仍然有点迷失。指向不在他们网站上的教程的链接会很好,或者可以向我解释如何在Qt中完成此任务。我唯一能做的就是在小部件上绘制点。

3 个答案:

答案 0 :(得分:8)

查看Qt附带的Scribble示例,它完全符合您的要求。

  

我们重新实现鼠标事件   处理程序实现绘图,   paint事件处理程序来更新   应用程序和resize事件   处理程序来优化应用程序   出现。另外我们重新实现   拦截的关闭事件处理程序   终止前的紧密事件   申请。

     

该示例还演示了如何操作   使用QPainter绘制真实的图像   时间,以及重绘小部件。

答案 1 :(得分:1)

使用QtAssistant并浏览QPainter上的条目。从那里您将看到使用QPainter的各种功能的示例程序的链接,例如:http://doc.trolltech.com/4.5/painting-basicdrawing.html

QtAssistant应该是您的头号资源。这是非常彻底的。然后,如果这没有帮助,我推荐QtCentre的论坛。那些是知识渊博的人。

答案 2 :(得分:1)

我只能猜到你的问题是什么,但我的猜测是你遇到了paintEvent用来更新页面的老问题。实现绘图程序的方法是首先创建一个QPixmap或QImage作为绘图缓冲区。然后用鼠标按下/移动/释放方法在其上绘画。更新绘图缓冲区后,所有更新(并成为一个好孩子,并指出需要更新的区域)。这将触发对paintEvent方法的调用,您只需将请求的矩形(QPaintEvent :: rect())blit到屏幕上。