QT设置窗口边框圆角及样式失效
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);
}
3. 主窗体加载不了样式时需要在paintEvent事件中加上如下代码:
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
QWidget::paintEvent(event);
}
走的太远不要忘记为什么出发,你的态度决定你的高度。

浙公网安备 33010602011771号