Qt支持Aero和毛玻璃效果

本文介绍如何在Qt应用程序中为窗口添加透明效果,并针对不同Windows版本进行适配。通过使用winextras模块和QtWin库,可以实现窗口背景透明,并在Windows 7、8及10上获得良好的视觉体验。

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

好记性不如烂笔头

前言:Aero win7有,win8没有,win10最新版又开始支持了;

反复如此,一定要实现该效果不如加个透明度来的实在;

1:在Qt工程中添加模块:winextras

2:包含头文件:<QtWin>

if (QtWin::isCompositionEnabled())    
{
	QtWin::extendFrameIntoClientArea(this, -1, -1, -1, -1);
	ui.widget->setAttribute(Qt::WA_TranslucentBackground, true);
	ui.widget->setAttribute(Qt::WA_NoSystemBackground, false);
	ui.widget->setStyleSheet("widget { background: transparent; }");
}
else
{
	QtWin::resetExtendedFrame(this);
	ui.widget->setAttribute(Qt::WA_TranslucentBackground, false);
	ui.widget->setStyleSheet(QString("widget { background: %1; }").arg(QtWin::realColorizationColor().name()));
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值