Qt學習之十六 Qt繪製系統簡介

2021-07-22 18:13:58 字數 761 閱讀 3826

qt 的繪圖系統允許使用相同的 api 在螢幕和其它列印裝置上進行繪製。整個繪圖系統基於qpainter, qpainterdevice 和 qpaintengine 三個類。

qpainter 用來執行繪製的操作; qpaintdevice 是乙個二維空間的抽象,這個二維空間允許qpainter 在其上面進行繪製,也就是 qpainter 工作的空間; qpaintengine 提供了畫筆( qpainter)在不同的裝置上進行繪製的統一的介面。 qpaintengine 類應用於 qpainter 和

qpaintdevice 之間,通常對開發人員是透明的。除非你需要自定義乙個裝置,否則你是不需要關心 qpaintengine 這個類的。我們可以把 qpainter 理解成畫筆;把 qpaintdevice 理解成使用畫筆的地方,比如紙張、螢幕等;而對於紙張、螢幕而言,肯定要使用不同的畫筆繪製,為了統一使用一種畫筆,我們設計了 qpaintengine 類,這個類讓不同的紙張、螢幕都能使用一種畫筆。

下圖給出了這三個類之間的層次結構(出自 qt api 文件):

上面的示意圖告訴我們, qt 的繪圖系統實際上是,使用 qpainter 在qpainterdevice 上進行繪製,它們之間使用 qpaintengine 進行通訊(也就是翻譯 qpainter 的指令)。

class paintedwidget : public qwidget

{ q_object

public:

paintedwidget(qwi

Qt 學習之路 Qt 模組簡介

qt 5 與 qt 4 最大的乙個區別之一是底層架構有了修改。qt 5 引入了模組化的概念,將眾多功能細分到幾個模組之中。qt 4 也有模組的概念,但是是一種很粗的劃分,而 qt 5 則更加細化。本節主要對 qt 5 的模組進行乙個簡單的介紹,以便以後大家需要哪些功能的時候知道到哪個模組去尋找。qt...

Qt之繪製閃爍文字

根據之前的二位繪圖,我們可以很輕鬆的進行文字的繪製,如果需要一些特效,比如 文字閃爍。我們就必須借助其它輔助類來完成。主要涉及兩個輔助類 原理 標頭檔案bannerwidget.h ifndef para banner h define para banner h include include c...

QT 學習 五 QT座標系統

圖形檢視框架是基於笛卡爾座標系統的,乙個圖形項在場景中的位置和幾何形狀由x座標和y座標來表示。當使用乙個沒有變換的檢視來觀察場景時,場景中的乙個單元代表螢幕上的乙個畫素。在圖形檢視框架中有3個有效的座標系統 圖形項座標 場景座標和檢視座標。圖形介面程式在座標系統中進行視窗和部件的定位。定位型別 頂級...