qt5-透明
方法一:窗体和子窗体都透明
this->resize(400,300); QLabel* label=new QLabel("标签",this); label->move(10,10); label->resize(100,100); label->setStyleSheet("background-color: rgb(255, 251, 100)"); this->setWindowOpacity(0);//设置部件的透明度 //其范围是 1.0(不透明)到 0.0(透明),默认值为 1.0 //窗体及其子窗体全部透明
方法二--推荐--主窗体透明(子窗体不透明)
#include "win.h" Win::Win(QWidget *parent) : QWidget(parent) { this->resize(400,300); QLabel* label=new QLabel("标签",this); label->move(10,10); label->resize(100,100); label->setStyleSheet("background-color: rgb(255, 251, 100)"); this->setWindowFlags(Qt::FramelessWindowHint|Qt::WindowMinimizeButtonHint); //注意:如果不去除标题栏,透明部分是黑色 this->setAttribute(Qt::WA_TranslucentBackground, true); //是否透明 } Win::~Win() { } void Win::paintEvent(QPaintEvent *) { QPainter painter(this); painter.fillRect(this->rect(), QColor(0, 0, 255, 0)); //QColor最后一个参数80代表背景的透明度 }
方法三-主窗体透明(子窗体不透明) --实现不规则窗体
#include "win.h" Win::Win(QWidget *parent) : QWidget(parent) { this->setWindowFlags(Qt::FramelessWindowHint|Qt::WindowMinimizeButtonHint); //注意:如果不去除标题栏,透明部分是黑色 this->setAttribute(Qt::WA_TranslucentBackground, true); //是否透明 p=new QPixmap("./b.png"); //b.png带透明的图片 this->resize(p->size()); } Win::~Win() { } void Win::paintEvent(QPaintEvent *) { QPainter painter(this); painter.drawPixmap(0,0,*p); }
上面工程下载:链接:https://pan.baidu.com/s/1MWLxvDTt-z4bEVmeNjC2rg 提取码:6666
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)