Qt遮罩层窗体怎么实现
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"Qt遮罩层窗体怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt遮罩层窗体怎么实现"吧!一、前言在有些项目中,需要在弹框的窗体背
千家信息网最后更新 2026年11月01日Qt遮罩层窗体怎么实现
本篇内容主要讲解"Qt遮罩层窗体怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt遮罩层窗体怎么实现"吧!
一、前言
在有些项目中,需要在弹框的窗体背后遮罩原有主窗体,使得突出显示弹窗窗体,突然想到之前写过一个全局截屏的东东,原理一致,拿来改改。只需要引入一个头文件和实现文件,然后在主窗体中设置下需要遮罩的主窗体和可能弹窗窗体的类名即可,就是如此简单。可以支持多个窗体列表。 原理很简单,先安装事件过滤器,拦截QEvent::Show事件,拿到当前窗体,如果在需要遮罩的窗体列表中,则弹出半透明的窗体,大小和弹出的窗体大小一致,然后在激活当前弹出的窗体。
二、代码思路
//使用方法//第一步,设置需要遮罩的父窗体MaskWidget::Instance()->setMainWidget(this);//第二步,设置哪些弹窗窗体需要被遮罩QStringList dialogNames;dialogNames << "frm1" << "frm2";MaskWidget::Instance()->setDialogNames(dialogNames);//核心代码void MaskWidget::setDialogNames(const QStringList &dialogNames){ if (this->dialogNames != dialogNames) { this->dialogNames = dialogNames; }}void MaskWidget::setOpacity(double opacity){ this->setWindowOpacity(opacity);}void MaskWidget::setBgColor(const QColor &bgColor){ QPalette palette = this->palette(); palette.setBrush(QPalette::Background, bgColor); this->setPalette(palette);}void MaskWidget::showEvent(QShowEvent *){ if (mainWidget != 0) { this->setGeometry(mainWidget->geometry()); }}bool MaskWidget::eventFilter(QObject *obj, QEvent *event){ if (event->type() == QEvent::Show) { if (dialogNames.contains(obj->objectName())) { this->show(); this->activateWindow(); QWidget *w = (QWidget *)obj; w->activateWindow(); } } else if (event->type() == QEvent::Hide) { if (dialogNames.contains(obj->objectName())) { this->hide(); } } else if (event->type() == QEvent::WindowActivate) { //当主窗体激活时,同时激活遮罩层 if (mainWidget != 0) { if (obj->objectName() == mainWidget->objectName()) { if (this->isVisible()) { this->activateWindow(); } } } } return QObject::eventFilter(obj, event);}三、效果图
到此,相信大家对"Qt遮罩层窗体怎么实现"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
窗体
激活
一致
事件
代码
内容
原理
大小
文件
方法
学习
实用
更深
个头
使用方法
全局
兴趣
前言
同时
实用性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州紫鲸互联网科技有限公司
互联网科技垄断
智能科技公司是互联网公司吗
西安互联网科技
有马互联网科技
互联网科技排名
唐信互联网科技 大连
互联网科技产品
央行互联网金融科技公司
茂名市互联网科技产业园
千方科技属于互联网企业吗
深圳育鹏互联网科技有限公司招聘
中国互联网十大科技股排名
浙南科技城互联网大厦建设工程
互联网科技圈年度人物
上海乐五互联网科技有限公司
广东鹅鹅鹅互联网科技有限公司
科技和互联网行业的特点
互联网科技对化妆品行业
互联网科技创业有什么好项目
广州大一互联网络科技有限公司
互联网下的科技发展
互联网的科技创新
科技服务与互联网
互联网科技公司官网
远拓互联网科技
天津摩尔互联网科技
银川新华互联网科技学校联系电话
内蒙古九一互联网科技
利用互联网等科技手段