在Qt中進行圖像繪制,需要用到QPainter對象,這個對象可以幫助我們完成一些簡單功能的繪制,比如說繪制線條,繪制折線等簡單的繪制功能。
QPainter對象,有兩個很有意思的函數,這兩個函數相互之間起作用,下面,我們就來看一下這兩個函數,save函數與restore函數。
painter->save();//保存當前Painter狀態 transform.translate(m_point.x(), m_point.y()); //沿着x坐標系移動第一個變量,沿着y坐標系移動第二個變量 transform.rotate(-m_realAngle); //繞軸逆時針旋轉變量的角度 transform.translate(-m_point.x(), -m_point.y()); //和上面移動相反,返回原先的移動 painter->setTransform(transform, true); //第二個變量為true,故合並指定的變換與現在的變換 painter->setPen(pen);//設置畫筆 painter->setBrush(brush);//設置畫刷 painter->drawPolygon(polygon);//將向量導入,繪制折線 painter->restore();//恢復上面保存的狀態
在這里的圖像繪制,調用了這兩個函數,在一開始,調用save函數,保存此時QPainter對象的狀態,然后,下面開始進行一系列圖像繪制,程序中寫下了注釋,大家可以參考,這只是程序里的一小片段。而在繪圖結束,再調用restore函數,這里的作用是恢復QPainter對象的狀態為之前保存時候的狀態。
在繪制復雜圖形時候,我們常用這個功能,來保證圖形的正確繪制,不因為多次變換QPainter屬性導致繪圖錯誤,只需要調用這一組函數,就能實現QPainter狀態的存儲與在此使用。
以上,給大家以參考,各位加油呀。