强制删除 Qt 中的所有水平间距

Posted

技术标签:

【中文标题】强制删除 Qt 中的所有水平间距【英文标题】:Force remove all horizontal spacing in Qt 【发布时间】:2012-06-16 21:47:38 【问题描述】:

使用 Qt,我设置了一个水平布局的主对话框。此水平布局包含三个垂直布局。我真的希望这些布局中的所有控件相互对接,但我无法让 QT 删除所有填充和间距。

我已将所有布局的间距和内边距设置为 0,并使用 CSS 清除所有边框、内边距和边距。我仍然无法摆脱该死的间距。

这是它的外观图片:

据我所知,这些小部件应该被推到那条红线上。

【问题讨论】:

想一想:如果你已经尝试了所有的布局,你能确认小部件本身没有边框吗?换句话说,布局和小部件确实是相互抵触的,但在视觉上,小部件内部有一个边距。 这是一个很好的问题。我可以让 QPushButtons 相互碰撞,但标签和列表不会。即使我使用 css 将它们的边距、边框和填充设置为零。在删除这些边界时我会遗漏一些东西吗? 小更新,当我删除布局中的按钮时,列表项之间的边界似乎消失了。也许按钮导致奇怪的填充? 【参考方案1】:

你试过了吗

layout->setContentsMargins(0,0,0,0);

... 其中 layout 是指向 QVBoxLayout、QHBoxLayout 等的指针?

【讨论】:

对不起,我忘了提。我确实在我的所有三个布局上都尝试过,但没有效果。但也许我错过了什么。我再试一次。感谢您抽出宝贵时间回复。 :)【参考方案2】:

对于有类似问题的任何人,请尝试以下方法之一

layout->setContentsMargins(0,0,0,0);
layout->setSpacing(0);
layout->setMargin(0);

【讨论】:

以上是关于强制删除 Qt 中的所有水平间距的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中以指定的等间距在水平堆栈视图中分布项目

强制 OpenGL 渲染始终在 Qt 中的相同 (Q) 线程上运行

stackView 中的 StackView 不能通过 swift 使用它的间距

删除 TextView 中的顶部和底部间距

TSLint ,在 import 语句中强制括号之间的间距

R Shiny CSS:删除特定行之间的空间,同时保持所有其他间距不变