QImage和QPixmap有什么区别?

我不明白QImage和QPixmap有什么区别,它们似乎提供了相同的function。 什么时候应该使用QImage,什么时候应该使用QPixmap?

Easily通过阅读QImage和QPixmap上的文档回答:

QPixmap类是可用作绘画设备的屏幕外图像表示。

QImage类提供了独立于硬件的图像表示forms,允许直接访问像素数据,并可用作绘画设备。

编辑:另外,从@戴夫的答案:

您不能在GUI线程之外操作QPixmap,但是QImage没有这样的限制。

从@Arnold:

以下是通常(并非总是)适用的简短摘要:

  • 如果你打算操作一个图像,修改它,改变它的像素等,使用QImage。
  • 如果您计划在屏幕上多次绘制相同的图像,请将其转换为QPixmap。

一个重要的区别是,除了主GUI线程之外,您不能在任何东西上创build或操作QPixmap 。 但是,您可以在后台线程上创build和操作QImage实例,然后在将它们传递回GUI线程后将其转换。

Qt实验室提供了一系列很好的文章来解释Qtgraphics系统。 本文特别介绍了QImageQPixmap

以下是通常(并非总是)适用的简短摘要:

  • 如果你打算操作一个图像,修改它,改变它的像素等,使用QImage
  • 如果您计划在屏幕上多次绘制相同的图像,请将其转换为QPixmap

在工业环境中重要:

QPixmap存储在显示器上的显卡上。 不是QImage。

所以如果你有一个运行应用程序的服务器和一个显示器的客户站,就networking使用而言,这是非常重要的。

使用Pixmap,重绘包括仅通过networking发送重绘的命令(几个八位字节)。 它包括发送整个图像与一个QImage(几Mo?…)