题
我正在尝试编写一个绘画程序(在检测到鼠标按下/按住的地方进行绘画),但我在使用 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 ::矩形())到屏幕上。