Item
QML中的所有可視項目都繼承自Item。雖然Item本身沒有可視化的外觀,但是它定了以可視化項目的所有屬性,例如L位置,大小,布局anchors相關屬性和關於按鍵處理的keys屬性等。Item擁有一個visibel屬性,將其社這位false可以隱藏項目,該屬性默認值為true。
1.作為容器
Item常用來對項目進行分組
Item
{
Image{source:“tile.png”}
Image{x:29;y:34
width:123; height:234
source:"tile.png"}
Image{x:190
width:345 ; height:456
source:"tile.png"
fillMode:Image.Tile
}
}
2.默認屬性
Item中有個children屬性和resource屬性。前者包含了可見的孩子的列表,后者包含了不可見的資源。例如:
Item{
children:[
Text{},
Image{},
Rectangle{}
]
resources:[
Timer{}
]
}
Item中還有個data默認屬性,它允許在有個項目中將可見的孩子和不可見的資源自由混合。也就是說,如果向data列表中添加一個可視項目,那么將作為一個孩子進項添加;而如果添加任何其他的對象類型,那么將被作為資源進項添加。又因為data是默認屬性,所有可以省略data標簽。前面的額帶面可以改寫為:
Item{
Text{}
Image{}
Rectangle{}//前面三個作為children可見
Timer{}//作為資源類型不可見
}
也就是說,編程中可以直接向一個項目中添加任何的元素。
3.透明度
Item有一個opacity(不透明)屬性,可以用來設置透明度。該屬性可以設置為0-1.0(完全不透明)之間。opacity可以繼承。
4.堆疊順序
Item中的z屬性表明兄弟之間的堆疊順序。默認z=0,z值越大,繪制越在上面。相同z值由上到下依次繪制。z為負值,會被繪制在父項目的下面。
Rectangle{
color:"red"
width:100;height:100}
Rectangle{
color:"blue"
x:50;y:50
width:100;height:100}

左圖為上述代碼結果,右圖為下述代碼結果
Rectangle{
z:1
color:"red"
width:100;height:100}
Rectangle{
color:"blue"
x:50;y:50
width:100;height:100}
5.定位子項目和坐標映射
Item提供childAt(real x, real y)函數返回在點(x,y )處的子項目。
