[英]Need a little help with the Qt painting classes
我正在尝试编写一个绘图程序(在检测到鼠标按下/保持的情况下绘制),但是我在使用Qt QPainter时遇到了麻烦。 我已经在他们的网站上阅读了文档,我仍然有点迷失。 指向不在他们网站上的教程的链接会很好,或者可以向我解释如何在Qt中完成此任务。 我唯一能做的就是在小部件上绘制点。
检查Qt附带的Scribble示例,它完全符合您的要求。
我们重新实现鼠标事件处理程序以实现绘图,paint事件处理程序更新应用程序和resize事件处理程序以优化应用程序的外观。 此外,我们重新实现close事件处理程序,以在终止应用程序之前拦截关闭事件。
该示例还演示了如何使用QPainter实时绘制图像以及重新绘制窗口小部件。
使用QtAssistant并浏览到QPainter上的条目。 从那里您将看到使用QPainter的各种功能的示例程序的链接,例如: http : //doc.trolltech.com/4.5/painting-basicdrawing.html
QtAssistant应该是您的头号资源。 这是非常彻底的。 然后,如果这没有帮助,我推荐QtCentre的论坛。 那些是知识渊博的家伙。
我只能猜出你的问题是什么,但我的猜测是你遇到了一个古老的问题,即paintEvent用于更新页面。 实现绘图程序的方法是首先创建一个QPixmap或QImage作为绘图缓冲区。 然后用鼠标按下/移动/释放方法在其上绘画。 更新绘图缓冲区后,所有更新(并成为一个好孩子,并指出需要更新的区域)。 这将触发对paintEvent方法的调用,您只需将请求的矩形(QPaintEvent :: rect())blit到屏幕即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.