QML.关于自定义组件全局使用的疑惑

最近刚把项目的界面做完,leader要求我把qml文件分类并且搞成树形结构,当时我是一脸懵逼,只能像QWidget一样将项目分成多个文件夹的形式来分类,但是我是按照QWidget的想法来实现的,所以我的界面有一块是全体共享的,类似于一个stackedwidget,他是一直存在的,也有点类似。

当我多文件搞完后,我发现原本在同级目录下,不需要import头文件便可以直接在自己的.qml文件中来实例化,但是在不同目录下就需要自己手动import(支持相对路径)

import "<DirectoryPath>" [as <Qualifier>]

这个语法类似于 一个作用域

import "./xxx.qml" as mywidget

然后你可以通过别名去访问了 mywidget.xxx{}

类似于一个ui指针。

但是我发现,在最底层的qml文件对象可以访问最外层(root)的函数,这就非常奇妙了,因为我的理解是可以访问parent,但没想到parent.parent也可以。

除此之外,我还有个问题,因为我所有的界面都存在同一个界面,于是我都import然后实例化了,首先一个问题“qml的实例化是否像QWidget一样,控件是new在堆上的”,如果是的话,岂不是我每个实例化都非常浪费内存,第二个问题就是如果我每个qml文件使用的都是同一个id,是否访问的都是同一个qml。

这就是目前非常疑惑的两个点,希望后续能够慢慢理解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值