它只是一个容器,我想将小部件放入其中并隐藏它们并显示它们。我不希望它有任何边距或填充,它将是不可见的(没有边框,没有背景)
我通过样式表将 QWidget#container 设置为 margin:0px, padding:0px。并将 setObjectName("container") 设置为包含的所有小部件。
没发生什么事。但是设置背景颜色是有效的,所以它被执行了。
在哪些情况下会发生这种情况?如何解决这个问题?
它只是一个容器,我想将小部件放入其中并隐藏它们并显示它们。我不希望它有任何边距或填充,它将是不可见的(没有边框,没有背景)
我通过样式表将 QWidget#container 设置为 margin:0px, padding:0px。并将 setObjectName("container") 设置为包含的所有小部件。
没发生什么事。但是设置背景颜色是有效的,所以它被执行了。
在哪些情况下会发生这种情况?如何解决这个问题?
鉴于没有简洁的答案,我将总结以上内容:
要创建一个没有边距和填充的容器,而不是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);