我想添加一个右上角按钮来关闭一个漂浮在其他人身上的小部件。 我无法让它浮出面板的内容。
我试过几种方法。背景通常不起作用。我不能让一个小部件在该背景框内浮动。
这样做是这样的:
border-style: solid;
border-width: 12px 24px 37px 25px;
border-image: url(:/resources/images/panel_border_corner_btn.png) 12 24 37 25 fill repeat;
margin: 0px;
padding: 0px;
所以我尝试在顶部和右侧透明处制作10像素的背景,像这样(你不会看到透明区域,但是如果你下载它,你会看到它)。
所以我用按钮背景添加小部件:
但我无论如何都无法让它溢出边境。用-20修改边距会削减它,使用填充-20不起作用......
答案 0 :(得分:3)
这是我的例子:
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"));
}
这就是结果: