Qt4.8(或Qt5)是如何完成绘画工作的



这可能与"我的程序代码如何通过各种Qt5绘画系统转换到屏幕设备上的GUI?"相同

由于Qt支持各种平台,我的问题只基于Linux和嵌入式Linux(因为两者都是开源操作系统,在绘画方面有所不同:-)

我的问题集中在这些主题上:

  1. 涂装系统中的QWidgetQGraphicsItemRectangle(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如何处理这种情况呢?

您的问题非常广泛,大多数问题都可以在Qt QPaintEngine文档中得到回答:

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

QPaintEngine类提供了QPainter的抽象定义绘制到给定平台上的给定设备。Qt 4.0提供了不同油漆工的QPaintEngine预制实现我们支持的后台。我们为每个窗户提供一个油漆引擎我们支持的系统和绘画框架。这包括上的X11Unix/Linux和Mac OS X上的CoreGraphics。此外,我们还提供OpenGL的QPaintEngine实现(可通过QGLWidget访问)和PostScript(可通过X11上的QPSPrinter访问)。此外有一个基于光栅的绘制引擎,当发动机不支持某一功能。

相关内容

  • 没有找到相关文章

最新更新