軟體結構
現在開始講一下原始碼吧
重點:anchors錨布局
discoverqml的布局方式一般採用兩種,一種就是直接設定x與y座標的值。一種是採用相對位置布局,anchors錨布局,使用錨布局能夠使介面更緊湊,更有整體化,我們將這種機制成為錨點(anchor)。錨點允許我們靈活地設定兩個元素的相對位置。它使兩個元素之間形成一種類似於錨的關係,也就是兩個元素之間形成乙個固定點。
錨點的行為類似於一種鏈結,它要比單純地計算座標改變更強。由於錨點描述的是相對位置,所以在使用錨點時,我們必須指定兩個元素,宣告其中乙個元素相對於另外乙個元素。錨點是item元素的基本屬性之一,因而適用於所有 qml 可視元素。
用錨定位
除了更傳統的網格,行和列之外,qt quick還提供了一種使用錨點概念布局專案的方法。每個專案可以被認為具有一組7個不可見的「錨線」:left,horizontalcenter,right,top,verticalcenter,baseline和bottom。
基線(上圖未顯示)對應於文字所在的虛線。對於沒有文字的專案,它與頂部相同。qt快速錨定系統允許您定義不同專案的錨線之間的關係。
用法有如下,這裡不一一介紹。
anchors.baseline : anchorlineanchors.baselineoffset : real
anchors.bottom : anchorline
anchors.bottommargin : real
anchors.centerin : item
anchors.fill : item
anchors.horizontalcenter : anchorline
anchors.horizontalcenteroffset : real
anchors.left : anchorline
anchors.leftmargin : real
anchors.margins : real
anchors.mirrored : boolanchors.right : anchorline
anchors.rightmargin : real
anchors.top : anchorline
anchors.topmargin : realanchors.verticalcenter : anchorline
anchors.verticalcenteroffset : real
看看這個demo的程式吧,放一些固定的定位節點,將此設定在座標下
property var positions: [qt.point(80, 190), qt.point(180, 90),qt.point(280, 390), qt.point(480, 90),
qt.point(80, 590)]
定位節點如圖所示
將其畫出來,這裡在qt 純屬娛樂-繪製乙個模擬時鐘 講過,大家可以參考一下。
function drawline(ctx, color, width, startx, starty, endx, endy)
繪製影象
//繪製網格豎線for(var i = 0; i < width; i += 20)
drawline(ctx, "#7266fc", 0.5,i + 0.5, 0, i + 0.5, height);
//繪製網格橫線
for(var j = 0; j < height; j += 20)
drawline(ctx, "#7266fc", 0.5, 0, j + 0.5, width, j + 0.5);
//繪製地圖標記
positions.foreach(function(point, i) );
繪製掃瞄圓,這個算是精髓吧
for(var k = 0; k < 5; k += 0.5)
最後,點選("scan") 開始定時畫掃瞄圓,就出現這個畫面了,還是有點炫酷的.
推薦閱讀
(點選標題可跳轉閱讀)
導航定位系統的原理解析(乙個小白寫給另乙個小白)
無人駕駛是這幾年大火的乙個研究方向,研究無人駕駛需要了解的知識非常多,但是導航定位技術一定是其中必不可少的一環。l 衛星導航實現定位的原理 l 輔助增強系統如何實現厘公尺級定位。本篇文章的目標讀者是對定位導航一無所知的小白玩家,大神請繞路。提到衛星導航系統,相信就算對此不了解的人也一定聽說過,三顆衛...
Python模擬乙個使用者登入系統
直接上 模擬乙個使用者登入系統,使用者輸入使用者名稱和密碼,輸入正確即可進入系統 d yao 123456 while 1 name input 請輸入使用者名稱 if name in d break else print 你輸入的使用者名稱不存在,請重新輸入 count 3 while 1 pas...
乙個完美的導航樹
http bbs.xoyo.com forumdisplay.php?fid 4339 target main title 新手入門 高手高階,玩家遊戲經驗的交流區 http bbs.xoyo.com forumdisplay.php?fid 4700 target main title 精彩封神,...