Qml的一些细节

1、除了main.qml文件名的首字母可以小写以外,其它的.qml文件名的首字母都要大写。

2、在main.qml定义的(根item除外)MouseArea局部有效,在其它的.qml定义的MouseArea全局有效。

3、帮助文档没列出的方法、成员变量、信号、槽,可以利用代码提示得到,如:TreeView的__currentRow。

4、C++暴露方法给Qml时,传递的变量是强类型,而Qml的ECMAScript传递的变量是弱类型

5、C++的方法要定义为public slots才可以暴露方法给Qml,而private slots不可以。

6、在C++或Qml调用图片、视频等资源文件时,需要先添加到工程,才可以调用,调用时以工程的相对路径为准。

7、删掉了某一资源文件,编译时出错,可以删掉release、debug整个文件夹,重新编译就可以了。

8、如果要用鼠标拖动一个Rectangle,那么这个Rectangle不能使用锚布局,只能用x、y、width、height来布局,拖动时,改变x、y即可。

9、TextField有inputMask属性,可以限制输入文字的范围。

10、在qml上使用过多Timer,可能导致界面有点卡,用c++开个timer线程再发射信号到qml即可解决。

11、修改了除main.qml以外的qml文件,发现编译时现象跟代码不相符,可以删掉release、debug整个文件夹再重新编译,或者重新构建项目,再编译就可以了(Qt5.7.0才有这个bug,Qt5.9.2没有)。

12、对于所有item的text属性,建议使用qsTr("");,加上分号可以减少build project时的警告。

13、qml调用C++对象时,C++对象的构造函数会执行两次,这时可以把该构造函数内容写在qml的Component.onComplete中。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值