QT软件开发: QWidget窗口绘制圆角
Posted DS小龙哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT软件开发: QWidget窗口绘制圆角相关的知识,希望对你有一定的参考价值。
一、运行效果
二、核心代码
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
protected:
void paintEvent(QPaintEvent *p);
.................
}
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//隐藏标题栏
setWindowFlags(Qt::FramelessWindowHint);//无边框 置顶
//设置窗口背景透明
setAttribute(Qt::WA_TranslucentBackground);
//设置样式
this->setStyleSheet("#Widget{background-color: rgba(255, 0, 0, 150);}");
}
void Widget::paintEvent(QPaintEvent *p1)
{
//绘制样式
QStyleOption opt;
opt.initFrom(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);//绘制样式
QBitmap bmp(this->size());
bmp.fill();
QPainter painter(&bmp);
painter.setPen(Qt::NoPen);
painter.setBrush(Qt::black);
painter.setRenderHint(QPainter::Antialiasing);
painter.drawRoundedRect(bmp.rect(), 12, 12);
setMask(bmp);
}
以上是关于QT软件开发: QWidget窗口绘制圆角的主要内容,如果未能解决你的问题,请参考以下文章
Qt入门系列开发教程基础控件篇小部件(所有控件的基类QWidget)