不规则窗体效果——遮罩

根据一张图片来设置窗体显示效果。setMask

#include "widget.h"
#include "ui_widget.h"
#include<QPixmap>
#include<QBitmap>
#include<QPainter>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QPixmap pixmap;
pixmap.load(":/flower.png");
ui->label->resize(pixmap.size());
this->resize(pixmap.size());//设置窗体大小
//设置遮罩
this->setMask(pixmap.mask());
}

Widget::~Widget()
{
delete ui;
}

void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawPixmap(0,0,QPixmap(":/flower.png"));

}

void Widget::mousePressEvent(QMouseEvent *event)
{
close();
}