据我所知,.qml文件可用于定义UI,它似乎覆盖了ui.qml文件中的任何内容.那么,ui.qml文件的用途究竟是什么?
我正在使用Qt5和Qt Creator.
Mit*_*tch 26
该.ui.qml文件存在以帮助Qt Quick Designer.例如,普通QML文件可以包含JavaScript表达式,但Qt Quick Designer难以使用这些表达式.另一方面,简单的QML并不那么困难,并且更接近于等同于.ui文件的小部件- 一个详细描述用户界面中的一组项目的文档,而不是它们背后的逻辑.
该功能几年前在博客上提出:
经典的Widget Designer是围绕声明形式和命令式逻辑之间的区别而构建的.声明性表单是可设计的并存储在.ui文件中.
在Qml中,很容易混合声明性代码和命令式代码.如果您向Qml文件添加命令性指令(影响视觉方面),则它们不再是纯粹的声明,并且可视化编辑器中的可视化表示将会中断.可视化编辑器需要一种将可视描述转换回文本描述的方法.对于命令式代码,这通常是不可能的,Qt Quick Designer甚至都没有尝试.
该QML文件文档指出:
从Qt 5.4开始,文档也可以具有文件扩展名".ui.qml".QML引擎处理这些文件,如标准.qml文件,并忽略扩展名的.ui部分.Qt Creator将这些文件作为Qt Quick Designer的UI表单处理.这些文件只能包含Qt Creator定义的QML语言的子集.
您可以使用Qt Creator向导创建文件扩展名为.ui.qml的UI表单.UI表单包含QML语言的纯声明子集.建议您在设计模式下编辑表单.但是,将项目作为别名属性导出是仅限商业用途的功能,因此如果您使用的是Qt Creator的开源版本,则必须使用"编辑"模式执行此操作.Qt Creator通过显示错误消息来强制使用支持的QML功能.
不支持以下功能:
- JavaScript块
- 功能定义
- 函数调用(qsTr除外)
- 其他绑定比纯表达式
- 信号处理程序
- 除根项目之外的其他项目中的状态
- 不是从QQuickItem或Item派生的根项
不支持以下类型:
- 行为
- 捆绑
- 帆布
- 零件
- 着色器效果
- 计时器
- 转变
- 过渡
| 归档时间: |
|
| 查看次数: |
8109 次 |
| 最近记录: |