Qt设置窗口透明度-转载
1,父窗口透明
// 设置背景图片
QPalette pa;
setAutoFillBackground(true);
pa.setBrush(QPalette::Background,QBrush(QPixmap("image/cloud.jpg")));
setPalette(pa);
// QPalette palette;
// palette.setBrush(QPalette::Background, QColor(0, 0, 0, 100));
//setPalette(palette);
//设置控制透明度
setWindowOpacity (0.7); // 半透明
2、控件透明
setAutoFillBackground(false);
setWindowFlags(Qt::FramelessWindowHint); //窗口无边框
setAttribute(Qt::WA_TranslucentBackground, true); //在无边框窗口(执行上一行),此行才生效
然后重载paintEvent
用个带透明度的画刷填充就好了
特性说明:
在Qt中,设置窗体透明度的函数有:void setWindowOpacity(qreal level)
透明度的有效范围从1.0(完全不透明)到0.0(完全透明的)。
默认情况下,此属性的值是1.0。(也就是不透明状态)
这个特性可以在嵌入式Linux、Mac OS X、Windows、和X11平台上使用。
此功能不可用在Windows CE。
还要注意,半透明的windows更新和调整明显慢于不透明的窗口。(透明窗体的刷新速度会变慢)
http://blog.163.com/wangsh_ll/blog/static/1934961732015212115138520/