QT设置窗口边框圆角

发布时间 2023-05-09 11:31:44作者: 徐沛东

1.  直接设置样式    setStyleSheet("border:5px solid red;border-radius:10px")

2.  this->setAttribute(Qt::WA_TranslucentBackground);//设置窗口背景透明

  this->setWindowFlags(Qt::FramelessWindowHint); //设置无边框窗口 

void SystemWarnDialog::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);	// 反锯齿;
    painter.setBrush(QBrush(Qt::gray));
    painter.setPen(Qt::transparent);
    QRect rect = this->rect();
    rect.setWidth(rect.width() - 1);
    rect.setHeight(rect.height() - 1);
    painter.drawRoundedRect(rect, 15, 15);//也可用QPainterPath 绘制代替 
    // painter.drawRoundedRect(rect, 15, 15);
    // {
    //     QPainterPath painterPath;
    //     painterPath.addRoundedRect(rect, 15, 15);
    //     p.drawPath(painterPath);
    // }
    QWidget::paintEvent(event);
}