QT弹出子窗口QDialog类并且设置遮掩层以及自定义窗口、按键、边框

本文详细介绍如何使用Qt创建无边框且具有自定义样式的子窗口,包括使用两个Label分别作为遮罩层和背景层,调整透明度,并在父窗口中调用以实现美观的界面效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、首先新建界面项目文件 会有以下文件生成 (当然也可以不用ui界面 用的话感觉会方便很多)

      新建ui项目子窗口dialog文件的时候选择啥按键都不带的,没有确认、关闭、最大最小化等按键的界面  这样可以任我们修改样式

        dialog.h    dialog.cpp   dialog.ui

2、在ui界面中新增2个lable  一个用来设置遮掩层  一个用来设置背景 而真正的dialog窗口将它进行全透明(不知道为啥 dialog的setWindowOpacity(0.5)属性并没有反应   如果有反应的话 可以直接把它当遮掩层  也就不需要2个lable了)

     1)设置dialog窗口的属性  (无边框 模态)

this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);

this->setWindowModality(Qt:windowModal);

    2)将遮掩lable1设置样式表添加背景图然后通过setWindowOpacity(0.7)设置透明度 或者用QColor以及Alpha值添加纯色与透明(最好可以在ui界面操作中右击控件选择“放在后面”或者通过代码 lower()函数放到后面)    

    3)同理  将lable2 也设置样式表添加背景图,可以带边框特效的那种图 

    4)在界面上添加其他的子窗口控件 如关闭按键,也可以设置添加背景图

    5)在父窗口中new dialog(this)即可

3、按照这样的方式创建的子窗口能用图片创建各种炫酷的子窗口了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值