Qt4.8(或Qt 5)是如何进行绘画工作的?

5

这个问题可能和"How my program code transition to the GUI on screen device via various Qt5 painting system?"差不多。由于Qt支持各种平台,所以我的问题只基于Linux和嵌入式Linux(因为两者都是开源操作系统,并且在绘图方面有所不同:-))。

我的问题集中在以下几个方面:

  1. 在绘图系统中,QWidgetQGraphicsItemRectangle (in QML)是否不同? 不同在哪里?

  2. 哪一个不使用QPainterQPaintEngine)类?

  3. Qt4.8(或Qt5)实现了多少个绘图引擎?例如,QRasterPaintEngine

  4. 如果平台是Linux(支持X11),那么Qt会使用X11 API进行绘图吗?那么X11的绘图引擎和QRasterPaintEngine之间有什么区别?如果该平台还支持OpenGL,那么Qt会使用X11 API还是OpenGL API?

  5. 如果GPU支持OpenGL,则Qt可能会使用OpenGL;但如果GPU不支持OpenGL,则Qt如何处理此情况?


请逐个问题进行翻译。 - Mat
@Mat:你的意思是说“一个问题只能发一篇帖子”,对吗? - menjaraz
1个回答

4

您的问题比较宽泛,大部分可以在Qt QPaintEngine文档中找到答案:

https://doc.qt.io/qt-5/qpaintengine.html

QPaintEngine类提供了如何在给定平台上为给定设备绘制的抽象定义。Qt 4.0为支持的不同painter后端提供了几个预先制作的QPaintEngine实现。我们为每个窗口系统和绘画框架提供一个画图引擎。这包括Unix / Linux上的X11和Mac OS X上的CoreGraphics。此外,我们还为OpenGL(通过QGLWidget访问)和PostScript(通过X11上的QPSPrinter访问)提供QPaintEngine实现。此外,还有一种基于栅格的画图引擎,用于在引擎不支持某些功能时作为回退。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接