`css
qml學習筆記(二):可視化元素基類Item詳解(上半場anchors等等)
本學章節筆記主要詳解Item元素(上半場主要涉及anchors錨),由於全部可視化的界面元素都繼承於Item,熟悉Item後,不一樣的繼承子類,有其定製的屬性(從幾個到幾十個不等)。ide
《Qt實用技巧:在Qt Gui程序中嵌入qml界面(可動態覆蓋整個窗口)》·
《qml學習筆記(一):界面元素初探》·學習
《qml學習筆記(三):可視化元素基類Item詳解(下半場)》`測試
基類Item介紹
基類Item是全部可視化子類的父類,它不是可見的,可是它定義了全部通用元素通用的屬性,好比x、y、width、height、anchoring和handingsuppourt。ui
幾個Item的使用示例 spa
Image示例
- Item{
- Rectangle{
- width:1000;
- height:1000;
- color:"black";
- Image { // Image默認的背景是透明
- source:"1.png"// 相對於.qml的路徑
- }
- Image{
- x:80
- y:200
- width:100
- height:100
- source:"1.png"
- }
- Image{
- x:190
- y:400
- width:100
- height:100
- fillMode:Image.Tile
- source:"1.png"
- }
- }
- }
效果以下圖:3d
捕捉鍵盤
- Item{
- focus:true
- Keys.onPressed:{
- if(event.key==Qt.Key_Left){
- console.log("moveleft");
- event.accepted=true;
- }
- }
- Keys.onReturnPressed:
- console.log("Pressedreturn");
- }
輸入處理
- Rectangle{
- width:100;
- height:100
- FocusScope{
- id:focusScope
- focus:true
- TextInput{
- id:input
- focus:true
- }
- }
- }
效果如圖對象
屬性詳解
此屬性指示元素是否具備活動焦點。若是指示是真的,這個對象是目前接收鍵盤輸入,或是一個FocusScope爲父對象的對象,目前接收鍵盤輸入。blog
一般,此屬性是經過設置焦點在其子元素(繼承於Item)和其外圍FocusScope對象得到。在下面的例子中,TextInput和FocusScope對象會有活躍的熱點,而根矩形對象將不會。繼承
anchors:一組屬性,提供了以元素相互關係爲基準的定位方式,主要包括如下的:
- Item {
- Image {
- id: pic;
- x:100;
- y:200;
- source: "./1.png";
- }
- Text {
- id: label;
- anchors.top: pic.bottom; // 對象的頂部是與pic的底部高度相同
- text: "hello world";
- color: "black";
- font.pointSize: 14; // 大於0的值,與設備無關font.pixelSize:單位像素,依賴於設備
- }
- }
- Item {
- Image {
- id: pic;
- x:100;
- y:200;
- source: "./1.png";
- }
- Text {
- id: label;
- anchors.bottom: pic.bottom; // 對象的頂部是與pic的底部高度相同
- text: "hello world";
- color: "black";
- font.pointSize: 14; // 大於0的值,與設備無關font.pixelSize:單位像素,依賴於設備
- }
- }
- Item {
- Image {
- id: pic;
- x:100;
- y:10;
- source: "./1.png";
- }
- Text {
- id: label;
- anchors.left: pic.right; // 對象的頂部是與pic的底部高度相同
- text: "hello world";
- color: "black";
- font.pointSize: 14; // 大於0的值,與設備無關font.pixelSize:單位像素,依賴於設備
- }
- }
下章節
《qml學習筆記(三):可視化元素基類Item詳解(下半場)》`