我们曾经介绍过《用QML语言开发MeeGo应用程序》。QML作为Qt新的界面编写方式,具有强大的灵活性,事实上这就是Direct UI的概念,不过由于推出的时间比较短,同时本身定义上的问题,许多原来Qt中的部件在QML中是没有的。
对于有QML开发的需求的同学来说,每个部件都自己来写,是相当费时费力,所幸,目前已经有一定数量的QML开源组件(componet)了。在些QML组件里,不仅提供了一系列基础的部件,甚至还有非常强力的QML自定义元素,使用这些,将缩短项目的开发产期,为开发者带来极大的方便。
现在,笔者就心中的排名来对这些QML公开组件做界面。
Qt Components项目
评价星级:五星
地址:http://qt.gitorious.org/qt-components/
评语:很明显,从名字就可以看出来,这是官方提供的QML组件,是探索Qt/QML组建和模型创造的项目。同时,如果熟悉MeeGo开发的同学会发现,这套组件已经很早就被引入了MeeGo的开发中。
这套组件项目里一共提供MX,Symbian和MeeGo三个平台的QML组件,其中MX是对应桌面端的。由于过去一年里诺基亚的战略使然,MeeGo的组件是最为丰富的,MX次之,Symbian最少。不过由于最近诺基亚转向了Windows Phone 7平台,该项目上也暂缓对MeeGo的平台持续更新,重点转移到了MX和Symbian平台上。
对于使用QML进行项目开发的同学来说,这套组件是必不可少,甚至可以认为,这就是以后QML官方组件的原型。
Colibri项目
评价星级:五星
地址:https://projects.forum.nokia.com/colibri
评语:这也是一套相当优秀的QML组件,更加突出的,是一套使用QML纯正元素编写,里面涉及逻辑的地方都是使用JS完成的。
这有什么好处?当然有,这意味着使用者无须进行编译就可以在自己的QML项目中以引入module的形式来使用。
而且,这个项目的初始开发来源也很有意思,是来自于digia的,也就是最近把Qt的商业协议收购的那家公司。撇开这点不说,这套部件里有许部件相当漂亮,特效也很赞,用到产品里让人有与众不同的感觉。
QML canvas项目
评价星级:四星
地址:http://qt.gitorious.org/qt-labs/QMLcanvas
评语:这是很有创意的一个项目,使用了QDeclarativeItem进行了自定义元素。
要知道QML里是没有提供绘制元素,如果有人想做绘制地图类似的项目,是需要绕很大的圈子来做。不过,有了这套QML组件的帮助,将会轻松很多。
QML canvas就是完成绘制功能的QML组件,有了它,绘制就成了简简单单的事情。
QM Lunit项目
评价星级:三星
地址:https://github.com/fgrehm/QMLunit
评语:顾名思义,对QML进行单元测试的QML组件,虽然创意不错,但是很久没有更新,能否成为一个优秀的QML组件项目还是一个未知数。
QML Arsenal项目
评价星级:三星
地址:http://gitorious.org/QMLarsenal
评语:也是QML扩增的组件项目,亮点在于SVG的支持以及特殊图形元素,不过说实在,东西比较少,也就凑合用了。
Native Quick Widgets
评价星级:二星
地址:http://qt-apps.org/content/show.php/Native+Quick+Widgets?content=137145
评语:大同小异的QML组件,不同在于使用本地的Qt 扩展少去,但似乎没什么亮点,部件乏善可陈,也是凑合用的。
这些就是目前笔者所知道的,并且值得推荐的QML的开源组件,如果您获悉有更好的,希望也能分享给大家。
【编辑推荐】