3

我正在paintEvent()自定义小部件中进行一些合成。当某些区域已经绘制时,一些合成就完成了,我需要访问目前绘制的当前内容。

所以,我正在寻找一种在paintEvent. 我看过QBackingStore,但那里没有任何东西可以直接让我访问后备存储位图。是否有一些 API,也许是私有的,可以用来提供它?

如果没有,我将不得不在显式像素图上进行绘制并将该像素图渲染到小部件上。

4

1 回答 1

1

这是可能的,但它不是便携式的。在大多数平台上,QBackingStore它只是一个围绕QImage缓冲区的包装类,但我想这不能保证。我在写的时候研究过这个问题QuickWidget。需要演员表:

QImage * image = dynamic_cast<QImage*>(backingStore()->paintDevice());
if (image != 0) // it's an image, do something with it

小心,但不要导致QImage分离。诸如调整大小之类的事情是不受限制的。

检查QuickWidget出在:

https://code.google.com/p/quickwidget/

于 2013-09-10T17:33:22.293 回答