QML创建子窗口的3种方式

方式1:1次仅能创建1个窗口,该窗口不影响主窗口的操作

方式1比较简单,就是在主窗口的Window下,再套Window,然后给个id,通过id来控制该窗口的显示(show)与隐藏(默认)。

你也可以分文件去写这个子窗口,调用也是和上面一样的,只不过代码位置换了一下而已,这样的好处就是主窗口没那么多代码,可读性强一些,也便于管理和维护。

需要注意的是,这种方式创建的子窗口,如果主窗口关闭了,子窗口也会同时关闭的。

方式2:通过Component组件来创建子窗口

这种方式也很简单,就是把Window写到Component组件中,需要时就新建一个。如果绑定到按钮上,那么点一次就新建一个子窗口,可以一直新建。

这种方式新建出来的子窗口不受主窗口影响,即使主窗口关闭了,子窗口也不会消失,仍然会显示。并且它也是非模态窗口,不影响主窗口的操作。

 方式2也可以分文件写子窗口,然后用 createObject() 的方法来新建子窗口。这种方式新建出来的窗口和上面的有所区别,区别在于:主窗口关闭后,子窗口会全部跟着消失。

这里多了一句代码是指定新建窗口的父对象。

方式3:模态子窗口 

首先了解一下什么是模态窗口:

模态窗口是位于应用程序主窗口顶部的元素,它创建了一个模态,即当模态窗口出现时,用户必须首先与该窗口交互(如填写信息、选择选项、执行操作等)并关闭它,才能继续使用打开它的父应用程序的其他部分。这种窗口通常用于要求用户做出决定或输入信息的情况。

模态窗口的特点:

  1. 独占性:模态窗口出现时,会阻塞或禁用其父窗口(或应用程序中的其他窗口)的交互,直到模态窗口被关闭。
  2. 交互性:用户必须与模态窗口进行交互,完成所需的操作后,才能返回到原有的应用程序或继续其他操作。
  3. 可见性:模态窗口通常位于其父窗口之上,保持可见状态,以便用户进行交互。

在QML中创建模态窗口非常简单,以直接在主窗口中新建子窗口的代码为例,只要在show出子窗口的代码之前加一句:xxx.modality = Qt.WindowModal 即可,xxx是子窗口的id名称。

这样一来,模态子窗口就成了,但是同时也有且只有1个子窗口了,不对当前的模态窗口进行处理,是无法新建第二个子窗口的。 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵呜角角

如果对你有所帮助,哪怕1毛钱~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值