首先需要透明的背景的png图片(需要用ps把图抠出来保存),如果背景不是透明的最终显示是矩形图形
创建widget项目,项目中添加资源文件,在widget.h中添加如下内容
protected:
void paintEvent(QPaintEvent *);
void mousePressEvent(QMouseEvent *);
添加头文件
#include <QPixmap>
#include <QBitmap>
#include <Qpainter>
在构造函数中添加如下内容,1、2行可以不写
this->setWindowFlags(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground);
pix.load(":/xing.png");
resize(pix.size());
setMask(pix.mask());
实现事件函数
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawPixmap(0, 0, QPixmap(":/xing.png"));
}
void Widget::mousePressEvent(QMouseEvent *)
{
close();
}
最终效果如下:
边上的后面的文件可以点击。
下面是我测试的图