1

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

我通过样式表将 QWidget#container 设置为 margin:0px, padding:0px。并将 setObjectName("container") 设置为包含的所有小部件。

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

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

4

2 回答 2

2

QWidget 不支持box model,因此它不理解 padding/margin CSS 指令。使用 QFrame 作为容器。要查看哪些小部件支持框模型,请查看可样式化小部件列表

于 2013-01-25T13:44:11.167 回答
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);
于 2021-07-20T12:32:08.567 回答