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

新手必學(xué) QML入門教程 (1)

移動(dòng)開發(fā)
QML是Qt推出的Qt Quick技術(shù)的一部分,是一種新增的簡便易學(xué)的語言。 QML是一種陳述性語言,用來描述一個(gè)程序的用戶界面:無論是什么樣子,以及它如何表現(xiàn)。

本文介紹QML入門教程的文章,教你如何學(xué)習(xí)QML。在QML,一個(gè)用戶界面被指定為具有屬性的對象樹。 這使得Qt更加便于很少或沒有編程經(jīng)驗(yàn)的人使用。

Qt Declarative UI 傳得沸沸揚(yáng)揚(yáng),卻很少有中文資料介紹這是一個(gè)什么樣的技術(shù),以及如何使用它。偶爾能搜到幾篇也是掐頭去尾的,讓人摸不著頭腦。CuteQt網(wǎng)友英狐奉獻(xiàn)的三篇文章很有參考價(jià)值,把我?guī)肓碎T。我準(zhǔn)備翻譯的這個(gè)入門教程來自于Qt官方文檔,更多的是語法性的介紹。說是翻譯,其實(shí)是我在原文基礎(chǔ)上的一個(gè)閱讀理解吧。

QML是什么?

QML是一種描訴性的腳本語言,文件格式以.qml結(jié)尾。語法格式非常像CSS(參考后文具體例子),但又支持javacript形式的編程控制。我個(gè)人認(rèn)為它結(jié)合了QtDesigner UI和QtScript的有點(diǎn)。QtDesigner可以設(shè)計(jì)出.ui界面文件,但是不支持和Qt原生C++代碼的交互。QtScript可以和Qt原生代碼進(jìn)行交互,但是有一個(gè)缺點(diǎn),如果要在腳本中創(chuàng)建一個(gè)繼承于QObject的圖形對象非常不方便,只能在Qt代碼中創(chuàng)建圖形對象,然后從QtScript中進(jìn)行訪問。而QML可以在腳本里創(chuàng)建圖形對象,并且支持各種圖形特效,以及狀態(tài)機(jī)等,同時(shí)又能跟Qt寫的C++代碼進(jìn)行方便的交互,使用起來非常方便。

如何使用?

在Qt C++文件中通過QDeclarativeView加載,就像使用UiLoader加載.ui文件一樣。不過本文不會(huì)去介紹如何在Qt C++中使用QML,而是把重點(diǎn)放在QML的語法上,不過別擔(dān)心看不到.qml文件的效果。Qt提供了一個(gè)工具QML Viewer可以查看.qml文件生成的效果,該程序在Qt的bin目錄下,應(yīng)用名字叫qml(Windows下叫qml.exe)。所以你在看到別人提供的.qml文件時(shí),你可以用下面命令qml filename.qml 查看.qml的執(zhí)行結(jié)果,咱們的***個(gè)Hello,World生成界面如下:

新手必學(xué) QML入門教程 (1)

開始QML吧

上面的Hello,World源代碼如下

  1. import Qt 4.7  
  2.  Rectangle {  
  3.      id: page  
  4.     width: 500; height: 200  
  5.     color: “lightgray”  
  6.      Text {  
  7.         id: helloText  
  8.         text: “Hello world!”  
  9.          font.pointSize: 24; font.bold: true  
  10.         y: 30; anchors.horizontalCenter: page.horizontalCenter  
  11.      }  
  12.  } 

第1行是Qt QML的統(tǒng)一用法,指明當(dāng)前QML會(huì)使用Qt-4.7里已經(jīng)定義好的類型,比如第3行的Rectangle和第8行的Text。

第3行開始至文章結(jié)束處則定義了一個(gè)矩形的圖形區(qū)域?qū)ο螅?行則申明了該矩形區(qū)域?qū)ο蟮膇d為”page”可以被其它對象識(shí)別并通過該id訪問其成員屬性,另外幾個(gè)屬性width/height/color則很好理解,語法跟CSS類似,可以寫在一行中用分號”;”隔開。

第8行至第12行則是一個(gè)文本對象,看它代碼的嵌套結(jié)構(gòu)可以知道它是內(nèi)嵌于Rectangle的。Text的屬性除了anchors其它幾個(gè)都能顧名思義。anchors描訴的是當(dāng)前對象的位置和其它對象的相對關(guān)系,這里看到其水平中心位置在“page“的水平中心位置。如果相對anchors了解更多,請參考錨的解釋。

以上就是Hello,World的全部代碼,將其存為hellowordl.qml,那么只要執(zhí)行 qml hellowrold.qml就能看到文章前頭的界面了。

更多對象?

在上面的代碼中我們用到了Rectangle和Text,那么我還有哪些對象以及這些對象有哪些屬性呢。那么請?jiān)L問QML-Item類,Item類是QML最基礎(chǔ)的類,通過查看它的繼承類以及這些繼承類可用的屬性,你可以添加更多你感興趣的內(nèi)容。

責(zé)任編輯:zhaolei 來源: Qt技術(shù)博客
相關(guān)推薦

2011-06-16 09:53:25

Qt QML 教程

2011-06-16 09:40:53

QML 教程

2010-07-27 15:53:15

2010-08-02 09:36:22

Flex

2011-07-29 11:28:58

iPhone開發(fā)

2011-06-23 13:20:46

2011-09-07 11:13:27

無線路由器無線路由器設(shè)置

2023-11-29 07:30:08

Python用戶界面

2009-07-08 15:12:48

Java Servle

2014-05-26 15:35:55

Web組件Web Compone

2010-08-03 13:06:15

Flex Builde

2013-08-29 14:12:52

Storm分布式實(shí)時(shí)計(jì)算

2011-06-16 11:04:07

Qt

2011-09-02 10:59:10

jQuery Mobi

2013-06-24 13:38:34

HTML5 DataList

2018-03-22 14:59:13

Docker入門容器

2010-07-20 16:19:54

Perl

2010-06-18 16:56:50

UML建模語言

2010-05-21 12:50:45

Subversion快

2010-06-13 09:45:35

Widget開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品久久久久无码av | 色毛片 | 一区二区电影 | 精品欧美一区二区三区精品久久 | 欧美电影免费观看 | 亚洲综合色视频在线观看 | 成人亚洲在线 | 啪啪免费网站 | 欧美一区视频 | 亚洲69p| 日韩在线| 欧美中文一区 | 婷婷福利视频导航 | 国产欧美一级二级三级在线视频 | 日韩中文字幕一区二区 | 亚洲午夜精品一区二区三区他趣 | 国产日韩欧美一区二区 | 中午字幕在线观看 | 精品一区二区免费视频 | 男人的天堂在线视频 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 午夜免费看视频 | 中文字幕91| 日韩aⅴ片 | 欧美日韩精品一区二区三区视频 | 久久久久国产一区二区三区四区 | 91在线视频观看免费 | 欧美精品福利视频 | 日韩亚洲视频在线 | 久久国内 | 日韩影院在线观看 | 久精品久久| 福利视频一区二区 | 欧美精品在欧美一区二区 | 日本偷偷操 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 欧美在线a | 国产欧美一区二区三区另类精品 | 超碰激情| 国产精品成人国产乱一区 | 精品久久国产老人久久综合 |