MainWindow::MainWindow(QWidget*parent):
QMainWindow(parent),
ui(new Ui::MainWindow)
{
setAttribute(Qt::WA_TranslucentBackground);//支持alpha通道!!!
setAttribute(Qt::WA_NoSystemBackground);//不自动绘制背景
setWindowFlags(Qt::FramelessWindowHint);//无边框
backPix.load("://background.png");
ui->setupUi(this);
resize(backPix.size());
}
MainWindow::~MainWindow()
{
deleteui;
}
//准备一张处理好的圆角,带边框的图片,当然边框也可以直接使用QPainter绘制,但圆角就不好处理了
voidMainWindow::paintEvent(QPaintEvent*e)//需要参数,否则无法调用绘制事件
{
QPainterpaint(this);
paint.drawPixmap(backPix.rect(),backPix);//绘制背景图片
qDebug()<<"paintEvent";
}
这是我的P好的一张图片
这是程序运行的结果
P图提示,选择矩形圆角工具——》画出选区——》描边——》执行反选命令——》delete——》保存为png透明格式即可!
通过代码描边
QPainter paint(this);
QPen pen(QColor(138,135,122));
pen.setWidth(2);
paint.setPen(pen);
paint.drawRect(0,0,width(),height());
效果如下: