为什么wxWidgets更新绘图比Qt慢?

时间:2012-04-11 08:49:47

标签: qt wxwidgets

我使用wxWidgets绘制一个大流程图,即625 x 26329像素。该程序从Qt转移到wxWidgets。它的布局很容易,主框架内部有一个定制的滚动窗口。滚动窗口每次在更新的客户区域内绘制部分图表。

现在Qt和wxWidgets有很大的不同。当鼠标滚动垂直滚动时,Qt刷新绘制图表非常流畅,而wxWidgets缓慢闪烁。

有谁能告诉我如何有效地进行绘画?

1 个答案:

答案 0 :(得分:0)

你确定它很慢吗?我想知道,我遇到了不同的经历。

你提到闪烁。闪烁主要是因为刷新次数太多而造成的。 为了防止这种情况,你必须使用双缓冲,这是关键。

双缓冲意味着将所有内容绘制到图像/位图之后,在绘制完所有内容后,完全绘制图像/位图(这样做非常快,所以没有闪烁:)! )。

Qt用于默认的双缓冲。这就是为什么它看起来每次都很流畅。 然而,这种方法的缺点是它会消耗性能。 wxWidgets并不限制你。相反,它说,你的任务是获得双重缓冲。

此外,你应该看看你是否剪裁了你正在绘制的区域。使用wxWidgets在Windows下进行剪辑为我带来了更好的性能。

PS: 是的,老问题,但我认为仍然需要知道事实是如何的。