QT如何在原先界面上显示一个子界面并置于顶层?

        在QT的开发过程中,常常会出现需要显示一个子界面的需求,常见的方法有直接创建一个新的界面再将当前界面隐藏,这种方法是把两个界面完全当做两个独立的界面来进行设计,详细方法可参考我之前的文章:在QT中如何实现不同界面之间的跳转,需要注意的事项有哪些?_qt 页面跳转-CSDN博客

        但如果想要实现在原先界面的基础上显示一个小于当前界面的界面或窗口并置于顶层,类似于一个弹框的效果,该如何去实现?其实实现的方法大差不差,只需以下几个步骤:

1.创建子界面的类

2.将子界面的尺寸设置为和父界面一样

3.添加背景色

            在子界面添加一个Widget,也将其尺寸设置为铺满整个界面,并将背景颜色设置为灰色以及设置好不透明度,这个操作的目的是让子界面显示的时候可以看见父界面确无法操作,模拟出子界面置顶的效果。

     

4.添加一个widget作为真正想要实现的子界面

5.设置自己想要的信号来触发子界面的显示和关闭

这里选择了最常见的按钮点击信号

 6.效果展示

7.注意事项

1.为子界面的类申请空间的时候,要指定父界面为当前界面,不然效果会是重新显示一个新的界面而不是在原先的界面上显示一个新界面。

2.为子界面的类申请空间需要在父界面显示之后,否则子界面会在信号还没有触发的时候便随着父界面一起显示。

3.如果想要控制子界面显示的位置,可以使用布局管理器进行控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值