Qt-QOpnGLWidget和普通QWidget之间的性能差异

时间:2019-04-17 14:34:20

标签: qt opengl

QLabel之类的小部件可通过调用函数setPixmap(...)来显示图像。或者可以通过使用QPainter::drawPixmap(...)中的paintEvent(...)来完成。据我所知,QOpenGLWidget / openGL正在要求GPU为其工作。

因此,我认为QOpenGLWidget的性能会更好。那么普通的QWidgets呢?他们是否要求GPU在显示图像或绘图时工作?

小部件看起来很相似,但是QOpenGLWidget有一个特殊的方法paintGL(...)。我很少看到paintEvent(...)用于QOpenGLWidget。

1 个答案:

答案 0 :(得分:0)

普通的QWidget通常由CPU渲染,尽管它们可以使用GPU来增加后备存储,但这通常仅由同一窗口中存在QOpenGLWidget触发。某些平台可能默认使用OpenGL渲染,但认为只有iOS平台可以做到这一点,我不确定它是否仍然如此。

关于性能,这取决于。 OpenGL具有更高的开销,但是通常对于图像而言,大大提高的像素处理速度胜过任何开销。 CPU渲染在增量渲染中具有优势,它可以更轻松地重新绘制窗口的一小部分,而OpenGL 通常只是在每个帧上重新绘制整个窗口。