成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

初識QML學習機制

移動開發
在QML中,一個用戶界面被指定為具有屬性的對象樹,這使得Qt更加便于很少或沒有編程經驗的人使用,JavaScript在QML中作為一種腳本語言,對QML進行邏輯方面的編程。

QMLQt推出的Qt Quick技術的一部分,是一種新增的簡便易學的語言。QML是一種陳述性語言,用來描述一個程序的用戶界面:無論是什么樣子,以及它如何表現。在QML,一個用戶界面被指定為具有屬性的對象樹。 這使得Qt更加便于很少或沒有編程經驗的人使用。 JavaScript在QML中作為一種腳本語言,對QML進行邏輯方面的編程.。

使用了最基礎的QML類型實現了文字Hello,World的顯示。這篇文章中將會增加顏色選項面板,用戶可以給Hello,World設置不同的顏色,如下圖顯示:

QML

QML組件

從圖中可以看到選項面板由6個顏色小塊組成,它們唯一的區別就是顏色不一樣。那么我們就可以用組件(Component)來實現一個顏色塊,然后在需要的時候使用這個組件就可以了。組件其實和其它編程語言中的宏,函數,類,結構體等功能差不多,就是代碼復用。作為程序員,我知道你懂的。

組件由一個單獨的QML文件名組成,文件名總是以大寫字母開頭,要使用該組件的時候直接使用該文件名就可以了。關于如何定義自己的組件,請訪問Defining new Components。我們為一個顏色塊定義了一個Cell.qml文件,然后使用Cell作為一個去訪問它。

Cell.qml的內容:

  1. import Qt 4.7Item {      
  2. id: container      
  3. property alias cellColor: rectangle.color      
  4. signal clicked(color cellColor)      
  5. width: 40; height: 25      
  6. Rectangle {          
  7. id: rectangle          
  8. border.color: "white"          
  9. anchors.fill: parent     
  10.  } MouseArea {          
  11. anchors.fill: parent          
  12. onClicked: container.clicked(container.cellColor)      
  13. }  
  1. Item {id: container
  2. property alias cellColor: rectangle.color
  3. signal clicked(color cellColor)
  4. width: 40; height: 25 

Item是最常使用的QML類型,一般用作其它類型的容器,可以理解成最頂級的父類,功能類似于QtGui中的QWidget。用一個屬性別名訪問其內嵌對象rectangle的color屬性。在其它文件中可以用Cell對象的cellColor獲得rectangle的color值。

signal clicked(color cellColor)則為對象定義了一個信號,在代碼的其它部分可以發出這個信號。

  1. Rectangle {id: rectangle  
  2. border.color: “white”  
  3. anchors.fill: parent} 

這一部分沒有特別好說的,在Item中內嵌了一個id為rectangle白邊框的矩形區域,大小占滿整個Item。

  1. MouseArea {
  2. anchors.fill: parent
  3. onClicked: container.clicked(container.cellColor)} 

MouseArea則為Item增加了一塊鼠標響應區,看它的anchors知道,在整個Item區域內都是鼠標活動區,都能偵聽到鼠標事件。onClicked那一行則相當于為鼠標單擊事件增加了一個處理行為,這里是發出了一個clicked()的信號。這個信號正是我們在Item里定義的那個signal。

Cell.qml寫完了,再來看看程序的主文件。

main.qml的內容:

  1. import Qt 4.7Rectangle {       
  2. id: page     width: 500; height: 200     color: "lightgray"     Text {           
  3. id: helloText           
  4. text: "Hello world!"          
  5.  y: 30           
  6. anchors.horizontalCenter: page.horizontalCenter          
  7.  font.pointSize: 24;   
  8.  font.bold: true      
  9.  }      
  10. Grid {          
  11.  id: colorPicker  x: 4; anchors.bottom: page.bottom; anchors.bottomMargin: 4           
  12. rows: 2; columns: 3; spacing: 3          
  13. Cell {  
  14.  cellColor: "red";   
  15. onClicked: helloText.color = cellColor   
  16. }           
  17. Cell {   
  18. cellColor: "green";   
  19. onClicked: helloText.color = cellColor 
  20.  }           
  21. Cell {   
  22. cellColor: "blue";   
  23. onClicked: helloText.color = cellColor   
  24. }          
  25.  Cell {   
  26. cellColor: "yellow"; onClicked: helloText.color = cellColor 
  27.  }           
  28. Cell {   
  29. cellColor: "steelblue";   
  30. onClicked: helloText.color = cellColor   
  31. }           
  32. Cell {   
  33. cellColor: "black";   
  34. onClicked: helloText.color = cellColor }      
  35.  }  
  36.  } 

這里在原來的基礎上增加了一個Grid網格。x坐標是4,底部挨著page的底部,所以我們看到的是在左下角。

新增的6個Cell,名字和Cell.qml是一樣的。通過cellColor屬性將顏色傳給了每個顏色塊。

當Cell接收到onClicked事件的時候,關聯的代碼回去修改Hello,World上的顏色。細心的朋友可能會注意到Cell只是定義了clicked()的信號,并沒有定義onClicked()啊,是的這就是Component的語法規則了。如果你在Cell.qml里定義的是plicked(),那么你在main.qml中引用的時候就該用onPlicked()了。

小結:QMLQt推出的Qt Quick技術的一部分,是一種新增的簡便易學的語言。本文的代碼也不少了,隨便改動改動,你會了解更多QML的秘密的本文借到這!嘿嘿,如有疑問,敬請留言。

【編輯推薦】

Qt 平臺中使GUI保持響應流暢

QML Image獲取資源路徑的細節

QML教程:Qt-Quick六大開源組件

淺談自動化測試工具 QTP腳本的重用

QML教程:構建和安裝QtComponents

QML教程:Review Native Quick Widgets

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-30 11:14:23

QML Desktop

2014-08-14 08:55:11

2023-07-18 15:02:50

論文AI

2020-11-26 16:25:45

AI

2020-04-24 12:50:50

AI算法機器學習

2018-08-05 06:48:34

2020-12-07 08:15:11

機器學習人工智能AI

2021-12-13 16:54:15

數字化

2012-02-22 17:23:51

JavaPlay Framew

2023-09-11 06:12:31

盒子模型CSS

2020-12-20 17:40:04

機器學習可視化網站算法

2021-07-22 09:43:09

Golang語言并發機制

2017-02-09 18:50:42

深度學習機器計算機

2017-04-10 08:40:14

機器學習模型應用模型評估

2017-09-21 12:15:36

機器學習概率學習

2015-07-27 09:25:45

core data

2015-06-11 15:25:43

ASP.NET

2011-03-21 17:06:31

QtmediahubQMLQt

2011-06-27 15:08:18

QML 視圖

2011-06-24 16:27:41

QML UI
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲啪啪| 浴室洗澡偷拍一区二区 | 91小视频在线 | 国产精品精品3d动漫 | 亚洲性在线 | 国户精品久久久久久久久久久不卡 | 国产婷婷在线视频 | 亚洲视频在线观看 | 午夜影院普通用户体验区 | 欧美一区二区三区久久精品 | 亚洲人在线播放 | 国产精品久久久久久久久久免费 | 日韩毛片在线免费观看 | 欧美日韩在线播放 | 爱爱视频日本 | 亚州一区二区三区 | 欧美一区二区三区久久精品 | 日本欧美黄色片 | 亚洲国产精品久久久 | hdfreexxxx中国妞 | 欧美成人免费在线视频 | 亚洲码欧美码一区二区三区 | 亚洲免费观看 | 天天综合操 | 国产高清一区二区 | 91成人免费 | 欧美a区| 日韩欧美手机在线 | 日本精品一区二区三区在线观看视频 | 亚洲精品永久免费 | 日本在线视频一区二区 | 亚洲精品一区二区另类图片 | 免费一区二区三区 | 国产精品成人品 | 成人免费视频观看视频 | 在线免费观看成年人视频 | 国产精品国色综合久久 | 国产精品99精品久久免费 | 日日骚av | 国产视频在线观看一区二区三区 | 久久精品国产久精国产 |