Qt 5 中的圖形處理首要透過命令式 QPainter API,或透過 Qt 的聲明式 UI 語言、Qt Quick 及其場景圖形後端。Qt 5 的圖形能力還包括支持打印,及加載和保存各種圖像格式。
QPainter 提供 API 為繪製嚮量圖形、文本和圖像在不同錶麵,或 QPaintDevice 實例,譬如 QImage , QOpenGLPaintDevice , QWidget ,和 QPrinter 。實際繪製發生在 QPaintDevice 's QPaintEngine 。軟件光柵化器和 OpenGL (ES) 2.0 後端是 2 個最重要的 QPaintEngine 實現。光柵描繪引擎是 Qt 的軟件光柵化器,並被用於繪製在 QImage or QWidget 。與 OpenGL 描繪引擎相比,它的優勢在於啓用抗鋸齒時的高品質和完整特徵集。
最重要的渲染目標為 QPainter 是:
OpenGL 是用於硬件加速和 3D 圖形的最廣泛采用的圖形 API,在所有桌麵平颱和幾乎一切移動及嵌入式平颱上有實現。Qt 庫包含許多可幫助用戶將由 OpenGL 驅動的圖形或其它圖形 API 調用集成到其應用程序中的類,以及用於顯示 3D 內容的附加模塊。
在 Qt 5.0 之前,Qt 支持 OpenGL 的處理是通過
Qt OpenGL
模塊。此模塊仍存在,但新代碼應瞄準使用新類在
Qt GUI
模塊。基於它們的名稱很容易區分這些類:類具有
QGL
前綴不應使用。相反,首選開頭采用
QOpenGL
.
Qt Quick 2 為渲染引入瞭 OpenGL (ES) 2.0 場景圖形。一般來說,它能顯著改進 Qt Quick 2 的性能相比 QGraphicsView / QPainter 基方式用於早期版本。
場景圖形是 Item 場景的圖形錶示。可以認為它是圖形的深度拷貝,包含足夠信息以渲染所有項的無關結構。一旦設置,就可以獨立於項狀態對它進行操縱和渲染。在很多平颱,甚至會在專用渲染綫程中渲染場景圖形,當 GUI 綫程準備下一幀的狀態時。
場景圖形被使用當 import QtQuick 2.x 在 QML 文件,和使用 QQuickView 以運行它。
Qt Quick 可以與原生 OpenGL 渲染混閤通過連接到信號 QQuickWindow::beforeRendering () 或 QQuickWindow::afterRendering () 其被發射,分彆在 Qt Quick 場景圖形渲染之前和之後。這些信號是從渲染綫程發射的 (當適用時),且需要直接連接。
Qt Quick 也可以渲染使用 Qt Quick 2D Renderer 。此光柵描繪引擎在沒有 OpenGL 的平颱渲染 Qt Quick 應用程序。
Qt 支持直接打印到本地或網絡的實際打印機,及産生 PDF 輸齣。如何采用 Qt 進行打印的詳細描述在 Qt Print Support 頁麵。
Qt 支持圖像的方便讀取、寫入及操縱透過 QImage 類。此外,對於如何更細粒度控製圖像的加載或保存,可以使用 QImageReader and QImageWriter 類。為添加由 Qt 所提供的其它圖像格式的支持,可以創建圖像格式插件通過使用 QImageIOHandler and QImageIOPlugin .
見 讀寫圖像文件 頁麵,瞭解更多信息。
另請參閱 描繪係統 .