QML教程:Qt-Quick六大開源組件
我們曾經(jīng)介紹過《用QML語言開發(fā)MeeGo應(yīng)用程序》。QML作為Qt新的界面編寫方式,具有強(qiáng)大的靈活性,事實(shí)上這就是Direct UI的概念,不過由于推出的時(shí)間比較短,同時(shí)本身定義上的問題,許多原來Qt中的部件在QML中是沒有的。
對于有QML開發(fā)的需求的同學(xué)來說,每個(gè)部件都自己來寫,是相當(dāng)費(fèi)時(shí)費(fèi)力,所幸,目前已經(jīng)有一定數(shù)量的QML開源組件(componet)了。在些QML組件里,不僅提供了一系列基礎(chǔ)的部件,甚至還有非常強(qiáng)力的QML自定義元素,使用這些,將縮短項(xiàng)目的開發(fā)產(chǎn)期,為開發(fā)者帶來極大的方便。
現(xiàn)在,筆者就心中的排名來對這些QML公開組件做界面。
Qt Components項(xiàng)目
評價(jià)星級:五星
地址:http://qt.gitorious.org/qt-components/
評語:很明顯,從名字就可以看出來,這是官方提供的QML組件,是探索Qt/QML組建和模型創(chuàng)造的項(xiàng)目。同時(shí),如果熟悉MeeGo開發(fā)的同學(xué)會(huì)發(fā)現(xiàn),這套組件已經(jīng)很早就被引入了MeeGo的開發(fā)中。
這套組件項(xiàng)目里一共提供MX,Symbian和MeeGo三個(gè)平臺的QML組件,其中MX是對應(yīng)桌面端的。由于過去一年里諾基亞的戰(zhàn)略使然,MeeGo的組件是最為豐富的,MX次之,Symbian最少。不過由于最近諾基亞轉(zhuǎn)向了Windows Phone 7平臺,該項(xiàng)目上也暫緩對MeeGo的平臺持續(xù)更新,重點(diǎn)轉(zhuǎn)移到了MX和Symbian平臺上。
對于使用QML進(jìn)行項(xiàng)目開發(fā)的同學(xué)來說,這套組件是必不可少,甚至可以認(rèn)為,這就是以后QML官方組件的原型。
Colibri項(xiàng)目
評價(jià)星級:五星
地址:https://projects.forum.nokia.com/colibri
評語:這也是一套相當(dāng)優(yōu)秀的QML組件,更加突出的,是一套使用QML純正元素編寫,里面涉及邏輯的地方都是使用JS完成的。
這有什么好處?當(dāng)然有,這意味著使用者無須進(jìn)行編譯就可以在自己的QML項(xiàng)目中以引入module的形式來使用。
而且,這個(gè)項(xiàng)目的初始開發(fā)來源也很有意思,是來自于digia的,也就是最近把Qt的商業(yè)協(xié)議收購的那家公司。撇開這點(diǎn)不說,這套部件里有許部件相當(dāng)漂亮,特效也很贊,用到產(chǎn)品里讓人有與眾不同的感覺。
QML canvas項(xiàng)目
評價(jià)星級:四星
地址:http://qt.gitorious.org/qt-labs/QMLcanvas
評語:這是很有創(chuàng)意的一個(gè)項(xiàng)目,使用了QDeclarativeItem進(jìn)行了自定義元素。
要知道QML里是沒有提供繪制元素,如果有人想做繪制地圖類似的項(xiàng)目,是需要繞很大的圈子來做。不過,有了這套QML組件的幫助,將會(huì)輕松很多。
QML canvas就是完成繪制功能的QML組件,有了它,繪制就成了簡簡單單的事情。
QM Lunit項(xiàng)目
評價(jià)星級:三星
地址:https://github.com/fgrehm/QMLunit
評語:顧名思義,對QML進(jìn)行單元測試的QML組件,雖然創(chuàng)意不錯(cuò),但是很久沒有更新,能否成為一個(gè)優(yōu)秀的QML組件項(xiàng)目還是一個(gè)未知數(shù)。
QML Arsenal項(xiàng)目
評價(jià)星級:三星
地址:http://gitorious.org/QMLarsenal
評語:也是QML擴(kuò)增的組件項(xiàng)目,亮點(diǎn)在于SVG的支持以及特殊圖形元素,不過說實(shí)在,東西比較少,也就湊合用了。
Native Quick Widgets
評價(jià)星級:二星
地址:http://qt-apps.org/content/show.php/Native+Quick+Widgets?content=137145
評語:大同小異的QML組件,不同在于使用本地的Qt 擴(kuò)展少去,但似乎沒什么亮點(diǎn),部件乏善可陳,也是湊合用的。
這些就是目前筆者所知道的,并且值得推薦的QML的開源組件,如果您獲悉有更好的,希望也能分享給大家。
【編輯推薦】