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

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

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

这是它的外观图片:

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

【问题讨论】:

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

标签: qt border margin spacing qtstylesheets


【解决方案1】:

你试过了吗

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

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

【讨论】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 2023-03-27
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 2017-02-08
    • 2013-12-25
    相关资源
    最近更新 更多