据我所知,.qml文件可用于定义UI,它似乎覆盖了ui.qml文件中编写的内容。那么,ui.qml文件的用途是什么?
我正在使用Qt5和Qt Creator。
该.ui.qml
文件存在以帮助Qt Quick Designer退出。例如,普通的QML文件可以包含JavaScript表达式,但是Qt Quick Designer很难使用这些表达式。另一方面,普通QML并不那么困难,并且更接近于等效于.ui
文件的小部件-一个详细描述用户界面中一组项目的文档,与其说是背后的逻辑,不如说是细节。
该功能是几年前在博客上提出的:
经典的Widget设计器围绕声明式形式和命令式逻辑之间的区别而构建。声明形式是可设计的,并存储在.ui文件中。
在Qml中,很容易将声明性代码和命令性代码混合使用。如果将命令性指令(影响视觉方面)添加到Qml文件中,它们不再纯粹是声明性的,并且视觉编辑器中的视觉表示将中断。视觉编辑器需要一种将视觉描述转换回文本描述的方法。对于命令性代码,这通常是不可能的,并且Qt Quick Designer甚至不会尝试。
该QML文件文档状态:
从Qt 5.4开始,文档还可以具有文件扩展名“ .ui.qml”。QML引擎处理这些文件,例如标准.qml文件,而忽略扩展名的.ui部分。Qt Creator将这些文件作为Qt快速设计器的UI表单进行处理。这些文件只能包含Qt Creator定义的QML语言的子集。
您可以使用Qt Creator向导创建文件扩展名为.ui.qml的UI表单。UI表单包含QML语言的纯声明性子集。建议您在“设计”模式下编辑表单。但是,将项目导出为别名属性只是一项商业功能,因此,如果使用的是Qt Creator的开源版本,则必须使用“编辑”模式来执行此操作。Qt Creator通过显示错误消息来强制使用受支持的QML功能。
不支持以下功能:
- JavaScript块
- 功能定义
- 函数调用(qsTr除外)
- 除纯表达式外的其他绑定
- 信号处理器
- 根项目以外的其他项目中的状态
- 不是源自QQuickItem或Item的根项目
不支持以下类型:
- 行为
- 捆绑
- 帆布
- 成分
- 着色效果
- 计时器
- 变形
- 过渡
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句