解析Qt4.7新特征Qt Quick開(kāi)發(fā)流程
Qt4.7新特征Qt quick開(kāi)發(fā)流程是本文要介紹的內(nèi)容主要是來(lái)了解Qt Quick的開(kāi)發(fā)流程,今天一早到了office立馬就去Qt官網(wǎng),期待已久的4.7正式版還是沒(méi)出來(lái)。但是已經(jīng)迫不及待得將所了解到的4.7的新特征和大家分享一下了。以下內(nèi)容是對(duì)官方多個(gè)文檔的閱讀理解和自己的實(shí)例認(rèn)證結(jié)果。
Qt4.7新的特征有一下幾點(diǎn):
(1)全新的Qt quick UI開(kāi)發(fā)工具
里面包括三個(gè)模塊,下面會(huì)詳細(xì)分享這三個(gè)部分分別如何工作,相互關(guān)系是什么,能為開(kāi)發(fā)者帶來(lái)哪些好處。
(2)Qt質(zhì)量的提升
這個(gè)嘛,是肯定有提升的。因?yàn)?.7采用新的Qt Continuous Integration系統(tǒng)開(kāi)發(fā)出來(lái)的***個(gè)版本。所謂Qt Continuous Integration系統(tǒng)。說(shuō)白了就是性能測(cè)試實(shí)驗(yàn)做得多一點(diǎn)。當(dāng)Qt新版本每加進(jìn)或者更改一個(gè)功能的時(shí)候,這個(gè)系統(tǒng)可以對(duì)加進(jìn)來(lái)的模塊進(jìn)行測(cè)試,如果它對(duì)Qt其他部分性能產(chǎn)生壞的影響,那么將取消這個(gè)行為。也就是可以保證我們接下來(lái)使用的更高版本的Qt肯定比以前的性能更加優(yōu)化。
(3)webkit的更新
Qt 4.7采用的更新了***的webkit2.0模塊。支持硬件加速CSS、3D動(dòng)畫(huà)。
(4)Qt creator 2.0
creator2.0著重增加了mobile developers便利性。增加了對(duì)塞班和maemo開(kāi)發(fā)環(huán)境的支持。
Qt quick工具包括三個(gè)部分。我們現(xiàn)在依次來(lái)了解這三個(gè)部分的內(nèi)容和功能。
1、QML(Qt元對(duì)象解釋性語(yǔ)言)它是用來(lái)解釋和說(shuō)明UI的。語(yǔ)言形式類(lèi)似于CSS,功能類(lèi)似于JavaScript。下面大家看一段QML代碼應(yīng)該就清楚了。甚至這串代碼都不需要去解釋的。文件以qml為后綴名。(qml文件只是一個(gè)界面,可以是靜態(tài)的也可以是動(dòng)態(tài)的。)qml可以實(shí)現(xiàn)很多復(fù)雜的ui動(dòng)態(tài)交互。詳情可以參見(jiàn)qt的demo。
- Rectangle {
- id: rectangle1
- x: 208
- y: 31
- width: 100
- height: 100
- color: "#2afd00"
- radius: 50
- border.width: 0
- }
2、新的工具 Design 在creator2.0中。以圖為證:
qml和design工具***的優(yōu)點(diǎn)在于可以實(shí)現(xiàn)qml腳本和ui的雙向動(dòng)態(tài)交互。這在以前版本的工具designer中是實(shí)現(xiàn)不了的。而且qml是解釋性腳本語(yǔ)言,這個(gè)ui開(kāi)發(fā)帶來(lái)很大的便利。
那么如何將我們?cè)O(shè)計(jì)的qml文件添加進(jìn)qt的project中呢?也就是如何在qt的application中使用qml。這里就自然進(jìn)入第三個(gè)部分。
3、QtDeclarative
這個(gè)模塊是用來(lái)裝載ui的。還是看代碼先。這是qt declarative的objectlistmodel的例子。
首先看一下objectlistmodel的pro文件:
- TEMPLATE = app
- TARGET = objectlistmodel
- QT += declarative
- # Input
- SOURCES += main.cpp \
- dataobject.cpp
- HEADERS += dataobject.h
- RESOURCES += objectlistmodel.qrc
- objectlistmodel的main.cpp文件:
- #include <QApplication>
- #include <qdeclarativeengine.h>
- #include <qdeclarativecontext.h>
- #include <qdeclarative.h>
- #include <qdeclarativeitem.h>
- #include <qdeclarativeview.h>
- #include “dataobject.h”
- int main(int argc, char ** argv)
- {
- QApplication app(argc, argv);
- QDeclarativeView view;
- QList<QObject*> dataList;
- dataList.append(new DataObject(“Item 1″, “red”));
- dataList.append(new DataObject(“Item 2″, “green”));
- dataList.append(new DataObject(“Item 3″, “blue”));
- dataList.append(new DataObject(“Item 4″, “yellow”));
- QDeclarativeContext *ctxt = view.rootContext();
- ctxt->setContextProperty(“myModel”,
- QVariant::fromValue(dataList));
- view.setSource(QUrl(“qrc:view.qml”));
- view.show();
- return app.exec();
- }
看到了吧,就是用QDeclarativeView這個(gè)類(lèi)來(lái)裝載ui的。
那下面我們就可以自己寫(xiě)個(gè)application,把圖中的12.qml裝載進(jìn)去編譯成一個(gè)exe文件了。
下面是我用到的main.cpp的代碼:
- QApplication a(argc, argv);
- QDeclarativeView vi;
- vi.setSource(QUrl(“12.qml”));
- vi.setResizeMode(QDeclarativeView::SizeRootObjectToView);
- vi.show();
- return a.exec();
OK,至此QT4.7的性能介紹完畢。通過(guò)這個(gè)介紹我們也知道了4.7開(kāi)發(fā)app的基本流程。 如有bug歡迎指正。
小結(jié):解析Qt4.7新特征Qt Quick開(kāi)發(fā)流程的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!更多關(guān)于QT的相關(guān)內(nèi)容,請(qǐng)參考QT開(kāi)發(fā)頻道。