天天看點

QPixmap顯示圖檔

現在我們來實作在視窗上顯示圖檔,并學習怎樣将圖檔進行平移,縮放,旋轉和扭曲。這裡我們是利用QPixmap類來實作圖檔顯示的。

一、利用QPixmap顯示圖檔。

1.将以前的工程檔案夾進行複制備份,我們這裡将工程檔案夾改名為painter05。(以前已經說過,經常備份工程目錄,是個很好的習慣)

2.在工程檔案夾的debug檔案夾中建立檔案夾,我這裡命名為images,用來存放要用的圖檔。我這裡放了一張linux.jpg的圖檔。如下圖所示。

4.将dialog.cpp檔案中的paintEvent()函數更改如下。

QPixmap顯示圖檔

(說明:下面的操作都會和坐标有關,這裡請先進行操作,我們在下一節将會講解坐标系統。)

二、利用更改坐标原點實作平移。

Qpainter類中的translate()函數實作坐标原點的改變,改變原點後,此點将會成為新的原點(0,0);

例如:

這裡将(100,100)設定為了新的坐标原點,是以下面在(0,0)點貼圖,就相當于在以前的(100,100)點貼圖。效果如下。

QPixmap顯示圖檔

三、實作圖檔的縮放。

我們可以使用QPixmap類中的scaled()函數來實作圖檔的放大和縮小。

四、實作圖檔的旋轉。

旋轉使用的是QPainter類的rotate()函數,它預設是以原點為中心進行旋轉的。我們要改變旋轉的中心,可以使用前面講到的translate()函數完成。

這裡必須先改變旋轉中心,然後再旋轉,然後再将原點複原,才能達到想要的效果。

運作程式,效果如下。

QPixmap顯示圖檔

五、實作圖檔的扭曲。

實作圖檔的扭曲,是使用的QPainter類的shear(qreal sh,qreal sv)函數完成的。它有兩個參數,前面的參數實作橫行變形,後面的參數實作縱向變形。當它們的值為0時,表示不扭曲。

效果如下

繼續閱讀