Qt Border, transparency, and padding. How to create this effect?

依然范特西╮ 提交于 2019-12-03 09:12:27

Here's my example:

FloatPanel::FloatPanel(QWidget *parent) :
QWidget(parent)
{
setAutoFillBackground(true);

QVBoxLayout *layout = new QVBoxLayout(this);
layout->setContentsMargins(5, 15, 15, 5);
layout->addWidget(new QLabel("some text"));
layout->addWidget(new QPushButton("some button"));
}

void
FloatPanel::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);

    QPainter painter(this);

    painter.setPen(Qt::black);
    painter.setBrush(Qt::white);

    painter.drawRect(0, 10, width() - 12, height() - 11);

    painter.drawPixmap(width() - 38, 0, QPixmap(":/close.png"));
 }

And this is the result:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!