布里斯班的研制与柏林演示

QML出自Qt Software在澳大利亚布里斯班的开发实验室。2009年6月的柏林LinuxTag大会上,Matthias Ettrich用Qt Creator现场构造示例,展示属性、状态和转换。他认为传统矩形控件不易缩放、改变或共享连贯背景,难以应对移动设备的新要求。其演讲把更快的图形处理、更高的分辨率与新的输入方式联系起来:用户对界面的要求已经改变,开发方式也需要调整。

参考:[1]

用游戏检验早期实现

2009年7月28日,Alan Alpert公布团队用Qt Declarative UI写成的SameGame示例。其总计334行,含127行QML与207行处理游戏逻辑的JavaScript;移动动画和视觉效果也在其中。界面表现与游戏规则由两种语言配合完成,提供了一个完整、可运行的研究对象。示例还演示动态创建对象,并给更换主题留下空间。Alpert同时提醒,行数并非定义严密的衡量尺度,这些数字也包括部分注释。开发者可到Kinetic代码库的kinetic-declarativeui分支查看实现,亲自研究这种仍在发展中的技术。

参考:[2]

设计审查中的命名调整

开发团队2009年8月21日的说明显示,QML的设计仍在调整。SetProperties这一名称像是在命令程序立即修改属性,但它实际描述某个状态下的属性覆盖;离开该状态后,原值还会恢复。团队因此建议改称PropertyChanges,使名称更贴合声明所表达的内容。这次更名建议属于整套QML元素设计审查的一部分。声明式语言着重描述要呈现的内容,而非逐步规定执行动作;命名应帮助使用者理解这种区别。说明预期在8月底完成审查,并提醒早期使用者修改代码;已做和拟做的变动都列在开发分支的QmlChanges.txt文件中,供试用者追踪。

参考:[3]

在既有Plasma组件中试用

2009年9月24日,Alan Alpert介绍团队把Qt Declarative UI接入Plasma的原型。天气示例让云和雨雪分别运动,意在让不熟悉C++的设计师也能制作流动、富于动画的界面。不过,Plasma已有大量控件和图形对象,采用新语言不应要求把它们全部重写。团队利用已有的Graphics View技术,让原有QGraphicsWidget组件未经改写便可供QML使用。展示还包含读取时间数据源的组件;旁边的文件监视组件直接展示这一例子的全部QML源代码,供人对照效果与描述。此时整合经验仍少,团队邀请试用者反馈;这些演示体现的是与既有程序并用的探索,尚非完成验证的全面迁移。

参考:[4]

跨平台二进制快照

2009年11月4日,以QtDeclarative署名的公告配合旧金山DevDays大会,提供Windows、Mac和Linux二进制快照。包内附有完整Qt Creator,用户建立QML项目后即可通过QML查看器运行查看。公告明确提示,这仍是未正式发布、稳定性有待改善的技术。团队计划在Qt 4.6发布时另行提供更新包,同时补写测试、修复错误、更新文档和示例。提供下载包也回应了此前慕尼黑DevDays参加者提出的下载问题。

参考:[5]

后续的Qt Quick与正式版本

2010年2月15日,Adam Walhout在巴塞罗那世界移动通信大会的演示公告中,将QML、Qt Creator中的工具及声明式开发方式归入Qt Quick。公告把QML展开为Qt Meta-Object Language,即Qt元对象语言,并提出让设计师与开发者在相同环境、相同代码上反复协作,减少把设计原型另行实现的困难。当时Qt Quick计划随Qt 4.7推出,3月将发布技术预览;此前的Qt Declarative、Declarative UI和Bauhaus等项目,将在预览版阶段统一使用Qt Quick名称。到9月28日,Alexandra Leisse的项目通报已明确确认Qt 4.7.0发布。

参考:[6] [7]