在QT的开发过程中,常常会出现需要显示一个子界面的需求,常见的方法有直接创建一个新的界面再将当前界面隐藏,这种方法是把两个界面完全当做两个独立的界面来进行设计,详细方法可参考我之前的文章:在QT中如何实现不同界面之间的跳转,需要注意的事项有哪些?_qt 页面跳转-CSDN博客
但如果想要实现在原先界面的基础上显示一个小于当前界面的界面或窗口并置于顶层,类似于一个弹框的效果,该如何去实现?其实实现的方法大差不差,只需以下几个步骤:
1.创建子界面的类
2.将子界面的尺寸设置为和父界面一样
3.添加背景色
在子界面添加一个Widget,也将其尺寸设置为铺满整个界面,并将背景颜色设置为灰色以及设置好不透明度,这个操作的目的是让子界面显示的时候可以看见父界面确无法操作,模拟出子界面置顶的效果。
4.添加一个widget作为真正想要实现的子界面
5.设置自己想要的信号来触发子界面的显示和关闭
这里选择了最常见的按钮点击信号
6.效果展示
7.注意事项
1.为子界面的类申请空间的时候,要指定父界面为当前界面,不然效果会是重新显示一个新的界面而不是在原先的界面上显示一个新界面。
2.为子界面的类申请空间需要在父界面显示之后,否则子界面会在信号还没有触发的时候便随着父界面一起显示。
3.如果想要控制子界面显示的位置,可以使用布局管理器进行控制