将填充和边距设置为0不起作用

时间:2013-01-25 12:03:59

标签: qt stylesheet margin padding qtstylesheets

它只是一个容器,我想把小部件放在里面并隐藏它们并显示它们。我不希望它有任何边距或填充,它将是不可见的(没有边框,没有背景)

我通过样式表将QWidget#容器设置为margin:0px,padding:0px。 并且setObjectName(“container”)包含所有包含。

的小部件

什么都没发生。但是设置背景颜色是有效的,所以它会被执行。

在哪些情况下会发生这种情况? 如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

QWidget不支持box model,因此它不了解padding / margin CSS指令。使用QFrame作为容器。要查看哪些小部件支持框模型,请查看list of stylable widgets

答案 1 :(得分:0)

鉴于没有简洁的答案,我将总结以上内容:

要创建一个没有边距和填充的容器,而不是 QWidget,请使用 QFrame,并在其上设置布局。然后在布局上将间距设置为 0,并将内容边距设置为 0。使用样式表将 padding/margin 设置为 0 将不起作用。

代码:


QFrame* containerFrame = new QFrame();
QVBoxLayout* layout = new QVBoxLayout;
layout->setSpacing(0);
layout->setContentsMargins(0, 0, 0, 0);
// add some widgets to the layout
containerFrame->setLayout(layout);