亚洲一级簧片_性 毛片_国产乱子视频_久久影城_强伦女教师视频_成人精品久久

電腦的系統屬性是什么

發布時間: 2023-04-16 21:37 閱讀: 文章來源:轉載

1、對象(Object)

在前面對象類型處已經講明了什么是對象,這里再重申一下。QML 對象由類型指定,一般與類型同名,名稱以大寫字母開頭,后面跟一對大括號,在括號中包含了對象特性定義,包括 id、屬性、信號、信號處理器、方法、附加屬性和附加信號處理器等,當然也可以包含子對象。例如,前面代碼中 Rectangle 對象中包含了 id、width、color等屬性定義和 Image、Text 子對象。 詳情請參考官方文檔:QML Object Attributes

2、屬性(Properties)

屬性是對象的特性之一,可以分配一個靜態的值或者綁定一個動態表達式,屬性和值由一個冒號隔開,使用 “屬性 : 值” 語法進行初始化,比如前面代碼中width: 640 。屬性可以分行寫,這樣結尾可以不用分號,也可以寫在一行,中間使用分號隔開,例如:width: 640; height: 480 。

import QtQuick 2.0Text {// (1) identifierid: thisLabel// (2) set x- and y-positionx: 24; y: 16// (3) bind height to 2 * widthheight: 2 * width// (4) custom propertyproperty int times: 24// (5) property aliasproperty alias anotherTimes: thisLabel.times// (6) set text appended by valuetext: "Greetings " + times// (7) font is a grouped propertyfont.family: "Ubuntu"font.pixelSize: 24// (8) KeyNavigation is an attached propertyKeyNavigation.tab: otherLabel// (9) signal handler for property changesonHeightChanged: console.log('height:', height)// focus is neeed to receive key eventsfocus: true// change color based on focus valuecolor: focus?"red":"black"}

讓我們來看看不同屬性的特點:

QT開發交流+貲料君羊:714620761

  1. id 是一個非常特殊的屬性值,它在一個 QML 文件中被用來引用元素。id 不是一個字符串,而是一個標識符和 QML 語法的一部分。一個 id 在一個 QML 文檔中是唯一的,并且不能被設置為其它值,也無法被查詢(它的行為更像 C++ 世界里的指針)。
  2. 一個屬性能夠設置一個值,這個值依賴于它的類型。如果沒有對一個屬性賦值,那么它將會被初始化為一個默認值。你可以查看特定的元素的文檔來獲得這些初始值的信息。
  3. 一個屬性能夠依賴一個或多個其它的屬性,這種操作稱作屬性綁定。當它依賴的屬性改變時,它的值也會更新。這就像訂了一個協議,在這個例子中 height 始終是 width 的兩倍。
  4. 添加自己定義的屬性需要使用 property 修飾符,然后跟上類型,名字和可選擇的初始化值(property : )。如果沒有初始值將會給定一個系統初始值作為初始值。注意如果屬性名與已定義的默認屬性名不重復,使用 default 關鍵字你可以將一個屬性定義為默認屬性。這在你添加子元素時用得著,如果他們是可視化的元素,子元素會自動的添加默認屬性的子類型鏈表(children property list)
  5. 另一個重要的聲明屬性的方法是使用 alias 關鍵字(property alias : )。alias 關鍵字允許我們轉發一個屬性或者轉發一個屬性對象自身到另一個作用域。我們將在后面定義組件導出內部屬性或者引用根級元素 id 會使用到這個技術。一個屬性別名不需要類型,它使用引用的屬性類型或者對象類型。
  6. text 屬性依賴于自定義的 timers(int 整型數據類型)屬性。int 整型數據會自動的轉換為 string 字符串類型數據。這樣的表達方式本身也是另一種屬性綁定的例子,文本結果會在 times 屬性每次改變時刷新。
  7. 一些屬性是按組分配的屬性。當一個屬性需要結構化并且相關的屬性需要聯系在一起時,我們可以這樣使用它。另一個組屬性的編碼方式是 font{family: "UBuntu"; pixelSize: 24 }。
  8. 一些屬性是元素自身的附加屬性。這樣做是為了全局的相關元素在應用程序中只出現一次(例如鍵盤輸入)。
  9. 對于每個元素你都可以提供一個信號操作。這個操作在屬性值改變時被調用。例如這里我們完成了當 height(高度)改變時會使用控制臺輸出一個信息。

警告:

一個元素 id 應該只在當前文檔中被引用。QML 提供了動態作用域的機制,后加載的文檔會覆蓋之前加載文檔的元素 id 號,這樣就可以引用已加載并且沒有被覆蓋的元素 id,這有點類似創建全局變量。但不幸的是這樣的代碼閱讀性很差。目前這個還沒有辦法解決這個問題,所以你使用這個機制的時候最好仔細一些甚至不要使用這種機制。如果你想向文檔外提供元素的調用,你可以在根元素上使用屬性導出的方式來提供(就是定義屬性)。

2.1 屬性更改通知

當一個屬性更改值時,它會發送一個信號來告知這個更改。要獲取這個信號,只需要創建一個信號處理器(signal handler),它使用onChanged語法來命名。示例程序如下:

Rectangle {width: 640; height:480onWidthChanged: console.debug("Width has changed to:", width)onHeightChanged: console.debug("height has changed to:", width)}

Rectangle 元素擁有 width 和 height 屬性,且定義了兩個信號處理器,無論何時屬性被修改了,都會自動調用它們。

2.2 列表屬性

列表是包括在方括號內,以逗號分隔的多個元素的集合。示例如下:

Item {children: [Image {},Text {}]}

如果列表中只有一個元素,那么可以省略掉方括號:

Item {children: Text {}}

其實列表和 ESMAScript 的數組(Array)是類似的,其訪問方式也一樣:

  • 可以用 [value1, value2, ..., valueN] 這種形式給 list 對象賦值。
  • length 屬性提供了列表內元素的個數。
  • 列表內的元素通過數組下標來訪。

訪問列表的示例程序如下:

Item {	children:{		Text {			text: "textOne"				}		Text {			text: "textTwo"				}		}		Component.onCompleted: {		for (vat i=0; i

2.3 分組屬性

在某些情況下使用一個 "." 符號或分組符號將相關的屬性形成一個邏輯組。有時我們給分組屬性賦值是一個個來的,類似于這樣:

Text {font.pixelSize: 18font.bold: true}

其實下面這樣的寫法在形式上更貼合分組的含義:

Text {font { pixelSize: 18; bold: true; }}

其實可以這么理解,font 屬性的類型本身是一個對象,這個對象又有 pixelSize、bold、italic、underline 等屬性。對于類型為對象的屬性值,可以使用 "." 操作符展開對象的每一個成員對其賦值,也可以通過分組符號(一對花括號)把要賦值的成員放在一起給它們賦值。

2.4 附加屬性

在 QML 語言的語法中,有一個附加屬性的概念,這是附加到一個對象上的額外的屬性。舉個例子,下面的 Item 對象使用了附加屬性:

import QtQuick 2.2Item {width: 100height: 100focus: truekeys.enabled: false}

你看,Item 對象設置 keys.enabled 為false,Keys 就是 Qt Quick 提供的供 Item 處理按鍵事件的附加屬性。與附加屬性相似的概念還有附加信號處理器,我們后面再講。

???展開全文
相關文章
主站蜘蛛池模板: 粉嫩精品一区二区三区在线观看 | 黄色一级毛片免费看 | 久久综合免费视频 | 精品成人在线视频 | 91在线精品秘密一区二区 | 黄色成人免费视频 | 欧州一区二区 | 色五月激情综合网 | 成人高清在线观看 | 日韩国产一区二区三区 | 日本99 | 久久99精品久久久久婷婷 | 精品一区二区久久久久久久网站 | 久久久久久穴 | 一区二区精品在线 | 日韩三级在线 | 国产色在线| www.伊人.com| 99综合 | 天堂网2018| 亚洲精品电影网在线观看 | 精品成人| 国产91精品久久久久久久网曝门 | 污视频在线 | 91午夜精品 | 免费看a网站 | 色婷婷激情一区二区三区 | 91视频久久久 | 国产超碰在线 | 国产精品久久久久久婷婷天堂 | 国产小视频在线 | 黄色av免费观看 | 国产一区二区不卡 | 亚洲一区二区视频在线 | 中文字幕在线中文 | 亚洲国产精品自拍 | 精品久久久久久久人人人人传媒 | 国产精品久久久久久久久久久久午夜片 | 日韩一区二区三 | 人人射人人 | 久久国产精品久久久久久 |