QT设置透明窗体
// setWindowOpacity(0.5);//设置窗口的不透明度0.5,设置整个窗口与部件的透明度
setWindowFlag(Qt::FramelessWindowHint); //窗口透明,隐藏标题,实现透明效果
setAttribute(Qt::WA_TranslucentBackground);//窗口透明,部件不透明
//创建标签控件的阴影效果
QGraphicsDropShadowEffect *effect2=new QGraphicsDropShadowEffect;
//设置阴影颜色
effect2->setColor(QColor(100,100,100,50));
//设置阴影模糊半径
effect2->setBlurRadius(2);
//设置阴影偏移值
effect2->setOffset(10);
//标签部件使用阴影效果
ui->label->setGraphicsEffect(effect2);
#ifndef MAINWINDOW8_4_H
#define MAINWINDOW8_4_H
#include
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow8_4; }
QT_END_NAMESPACE
class MainWindow8_4 : public QWidget
{
Q_OBJECT
public:
MainWindow8_4(QWidget *parent = nullptr);
~MainWindow8_4();
private:
Ui::MainWindow8_4 *ui;
protected:
void paintEvent(QPaintEvent *event);
};
#endif // MAINWINDOW8_4_H
#include "mainwindow8_4.h"
#include "ui_mainwindow8_4.h"
#include
#include
MainWindow8_4::MainWindow8_4(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MainWindow8_4)
{
ui->setupUi(this);
// setWindowOpacity(0.5);//设置窗口的不透明度0.5,设置整个窗口与部件的透明度
setWindowFlag(Qt::FramelessWindowHint); //窗口透明,隐藏标题,实现透明效果
setAttribute(Qt::WA_TranslucentBackground);//窗口透明,部件不透明
//创建标签控件的阴影效果
QGraphicsDropShadowEffect *effect2=new QGraphicsDropShadowEffect;
//设置阴影颜色
effect2->setColor(QColor(100,100,100,50));
//设置阴影模糊半径
effect2->setBlurRadius(2);
//设置阴影偏移值
effect2->setOffset(10);
//标签部件使用阴影效果
ui->label->setGraphicsEffect(effect2);
}
MainWindow8_4::~MainWindow8_4()
{
delete ui;
}
void MainWindow8_4::paintEvent(QPaintEvent *event)//重绘实现半透明
{
QPainter painter2(this);
painter2.fillRect(rect(),QColor(255,255,255,100));//使用rect()函数获取窗口的内部矩形
//fillRect可以指定任意的区域,对矩形进行填充
}