QT学习笔记(十二):透明窗体设置
创建 My_Widget 类 基类为QWidget , My_Widget.cpp 源文件中添加代码
#include "widget.h"
#include "ui_widget.h"#include <QGraphicsDropShadowEffect>// 构造函数
Widget::Widget(QWidget *parent) : QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);
// 1.直接设置整个窗口的不透明度(含全部窗口内容)setWindowOpacity(0.5); // 设置窗口的不透明度为0.5
// 2.窗体完全透明,部件不受影响setWindowFlags(Qt::FramelessWindowHint);setAttribute(Qt::WA_TranslucentBackground);
// 3.通过图形效果实现模糊、阴影和颜色等特殊效果:// 创建阴影效果QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect;// 设置阴影颜色effect->setColor(QColor(100, 100, 100, 100));// 设置阴影模糊半径effect->setBlurRadius(2);// 设置阴影偏移值effect->setOffset(30);// 标签部件使用阴影效果ui->label ->setGraphicsEffect(effect);// 单个窗口部件透明度设置(创建 QGraphicsOpacityEffect 对象)QGraphicsOpacityEffect *effect2 = new QGraphicsOpacityEffect;effect2->setOpacity(0.5); // 设置按钮的不透明度为0.5ui->pushButton->setGraphicsEffect(effect2);
}
效果:
1、
2、
3、