小技巧:
1. QML的内部逻辑可以直接调试
2. ctrl+ alt + space,在写QML时,可以直接调出工具条
3. 属性以小写字母开发
4. 属性改变事件,基本都是on+Property+Changed
5. 在代码里使用qrc资源的qml,在从qrc的item复制路径下添加qrc,然后冒号后再加一个斜杠如qrc:///main.qml;如果你的qml文件在qrc的分类中,
不是放在/分类下,不用添加该斜杠。在qml中直接在复制地址前加qrc即可
6.findChild使用里面的参数,对应的是QML中的objectName,不是QML中的id
7.QML对象,如果没有设置id,则使用时才初始化,如果设置了id,则一开始就初始化了
8.QML子对象可以直接使用父对象的属性,跨文件的情况同样可用
待续。。。
名词解释
1.QQuickView 提供了一个窗体用于显示UI
2. QQuickEngine 提供QML运行环境
3. QQuickWindow 显示窗体, 以及对item对象的管理及用户交互
编码约定:
QML文件分成下面几个部分:
id:
对象属性
属性声明(私有属性加__):
信号声明
JS函数
计时器、FileDialog之类
子对象
状态
状态切换
不同部分中间空一行;尽量用分组属性;如果JS函数较多,可以放到一个js文件中;
如果component,尽量另起段落,不接在后面写。需要的时候,通过id应用
JS使用总结注意点:
1.QML定义的function可以全局使用,子对象能使用父对象的函数,父对象不能直接使用
2.不能修改JS变量给其他文件使用,每次import相对于基于js创建一个新的对象
3.可以使用Qt.binding,进行属性值的绑定
QML模块导入:
1.Qt内置的,使用import即可
2.相对文件夹路径的 import "..\..\'方式
3.qrc文件的,qrc中不同prefix下面的qml使用,用下面方式可以
import "qrc:/Test/"// as MyModule
import "qrc:/Test/MYRect/"
4.其他import使用,请在qt帮助下搜索import