Qt自定义窗体,边框,圆角窗体

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());

效果如下:


原文地址:https://www.cnblogs.com/lzh-Linux/p/3769071.html