QT DIalog设置圆角

该代码示例展示了一个基于QtWidgets的Application5类,它继承自QDialog。类中设置了窗口背景透明和无边框,使用QPainter进行绘图,实现了一个带有圆角的红色边界。同时,代码还涉及到反锯齿效果和QStyleOption用于绘制基本窗口元素。
摘要由CSDN通过智能技术生成
class QtWidgetsApplication5 : public QDialog
{
    Q_OBJECT

public:
    QtWidgetsApplication5(QWidget *parent = Q_NULLPTR)
        : QDialog(parent)
    {
        ui.setupUi(this);
        this->setAttribute(Qt::WA_TranslucentBackground);//设置窗口背景透明
        this->setWindowFlags(Qt::FramelessWindowHint);   //设置无边框窗口
    }

    void paintEvent(QPaintEvent *event) override
    {
        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing);  // 反锯齿;
        painter.setBrush(QBrush(Qt::red));
        painter.setPen(Qt::black);
        QRect rect = this->rect();
        rect.setWidth(rect.width() - 1);
        rect.setHeight(rect.height() - 1);
        painter.drawRoundedRect(rect, 15, 15);
        
       /* QStyleOption opt;
        opt.init(this);
        QPainter p(this);
        style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);

        this->setStyleSheet("{background-color:transparent; }");*/
        QDialog::paintEvent(event);


    }

private:
    Ui::QtWidgetsApplication5Class ui;
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值