現在我們來實作在視窗上顯示圖檔,并學習怎樣将圖檔進行平移,縮放,旋轉和扭曲。這裡我們是利用QPixmap類來實作圖檔顯示的。
一、利用QPixmap顯示圖檔。
1.将以前的工程檔案夾進行複制備份,我們這裡将工程檔案夾改名為painter05。(以前已經說過,經常備份工程目錄,是個很好的習慣)
2.在工程檔案夾的debug檔案夾中建立檔案夾,我這裡命名為images,用來存放要用的圖檔。我這裡放了一張linux.jpg的圖檔。如下圖所示。
4.将dialog.cpp檔案中的paintEvent()函數更改如下。

(說明:下面的操作都會和坐标有關,這裡請先進行操作,我們在下一節将會講解坐标系統。)
二、利用更改坐标原點實作平移。
Qpainter類中的translate()函數實作坐标原點的改變,改變原點後,此點将會成為新的原點(0,0);
例如:
這裡将(100,100)設定為了新的坐标原點,是以下面在(0,0)點貼圖,就相當于在以前的(100,100)點貼圖。效果如下。
三、實作圖檔的縮放。
我們可以使用QPixmap類中的scaled()函數來實作圖檔的放大和縮小。
四、實作圖檔的旋轉。
旋轉使用的是QPainter類的rotate()函數,它預設是以原點為中心進行旋轉的。我們要改變旋轉的中心,可以使用前面講到的translate()函數完成。
這裡必須先改變旋轉中心,然後再旋轉,然後再将原點複原,才能達到想要的效果。
運作程式,效果如下。
五、實作圖檔的扭曲。
實作圖檔的扭曲,是使用的QPainter類的shear(qreal sh,qreal sv)函數完成的。它有兩個參數,前面的參數實作橫行變形,後面的參數實作縱向變形。當它們的值為0時,表示不扭曲。
效果如下