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

有帮助吗?

解决方案

检查附带的Qt的涂鸦的例子,它正是你想。

  

我们重新实现鼠标事件   处理器来实现绘图时,   Paint事件处理程序更新   应用程序和resize事件   处理程序,以优化应用程序的   出现。此外,我们重新实现   关闭事件处理程序拦截   终止前关闭事件   该应用程序。

     

这个例子还说明了如何   要使用QPainter绘制实时的图像   时间,以及重新绘制窗口小部件。

其他提示

使用QtAssistant和浏览到的QPainter的条目。从那里,你将看到使用QPainter的各种功能,像这样的链接,例如节目: http://doc.trolltech.com/4.5/painting-basicdrawing.html

QtAssistant应该是你的头号资源。这是相当彻底。那么,如果不帮我推荐的论坛: QtCentre 。这些都是一些知识渊博的人。

我只能猜测你的问题是什么,但我的猜测是,你正在运行到的是,的paintEvent用于更新页面的事实古老的问题。实现画图程序的方法是先创建的QPixmap或作为QImage的绘图缓冲。然后在你按下鼠标/移动/释放方法就可以了油漆。当您更新绘图缓冲,所有的更新(和是一个很好的男孩,并指出需要更新的区域)。这将触发你的paintEvent方法,一个电话,你只需在位块传输请求矩形(QPaintEvent ::矩形())到屏幕上。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top