1. 程式人生 > >QML之Canvas(畫布元素)

QML之Canvas(畫布元素)

Qt5中引進了畫布元素(canvas element),允許指令碼繪製。畫布元素canvas element) 提供了一個依賴於解析度的點陣圖畫布,你可以使JavaScript指令碼來繪製圖形,製作遊戲或者其它的動態影象。畫布元素canvas element)是基於HTML5的畫布元素來完成的。

   畫布元素( canvas element)的基本思想是使一個2D物件來渲染路徑。這2D物件包括了必要的繪圖函式,畫布元素(canvas element)充當繪製畫布。2D物件持畫筆,填充,漸變,文字和繪製路徑建立命令。

   在QML中,畫布元素(canvas element)充當了繪製的容器。2D繪製物件提供了實際繪製的方法。繪製需要在onPaint事件中完成。

畫布的繪製使用:

1. 裝載畫筆或者填充模式
2. 建立繪製路徑
3. 使用畫筆或者填充繪製路徑

使用一個簡單的例子說明這個過程

onPaint: {
var ctx = getContext("2d")
ctx.strokeStyle = "red"//畫筆的樣式
ctx.beginPath()//繪製開始路徑,
ctx.moveTo(50,50)//設定一個開始的點
ctx.lineTo(150,50)//設定結束的點ctx.closePath()//
ctx.stroke()//畫路徑
}

這樣子就畫好了一條線。路徑的設定,也就是在座標系中找好點,一個開始點,一個結束點,這樣點點之間就是畫筆的路徑。使用stroke就把路徑線畫好了。這裡面的座標是二維笛卡爾座標系統,左上角是( 0,0)座標。Y軸坐標軸向下,X軸座標軸向右。