QT 窗体控件的透明度设置
(一)整个窗体
targetForm->setWindowOpacity() ;
函数即可实现,效果为窗体及窗体内所有控件都透明化了
(二)自定义页面或控件
当设置一个QWidget(一般自定义页面或控件时用QWidget)时,直接设置其窗体透明度无法实现透明效果,目前找到的方法是将整个QWidget当做图形元素,对该图形元素进行设置透明度效果,
QLabel::paintEvent(eve); QPainter painter(this); // 如果是透明style,则更新透明度 if (m_style == TRANSPARENTSTYLE) { if (m_enter) { painter.setOpacity(0.6);//控件的透明度设置 } } painter.drawPixmap(0, 0, m_pic);
这样处理后就能实现透明化效果。
(三)用颜色中的透明度值设置
如果需要将自己画的形状,控件背景,边框,文字等可以用颜色上色的地方进行透明化,只需要将该部位的颜色设置一个透明度即可。
// 画一个半透明圆角矩形 QPainter *painter = new QPainter(this); painter->setPen(Qt::NoPen); painter->setBrush(QColor(0,170,255,100)); // 注意:最后一项为透明度!!! painter->setOpacity(0.6); painter->drawRoundRect(0,0,100,100,10,10);// 画圆角矩形 // 设置某控件的背景颜色为半透明 QWidget *widget = new QWidget;// QWidget可以是任意QWidget派生的控件 widget->setAutoFillBackground(true);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了