它只是一个容器,我想把小部件放在里面并隐藏它们并显示它们。我不希望它有任何边距或填充,它将是不可见的(没有边框,没有背景)
我通过样式表将QWidget#容器设置为margin:0px,padding:0px。 并且setObjectName(“container”)包含所有包含。
的小部件什么都没发生。但是设置背景颜色是有效的,所以它会被执行。
在哪些情况下会发生这种情况? 如何解决这个问题?
答案 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);