让我来解释一个简化的情况。在Qt Creator中,创建一个QHBoxLayout
,其中包含QPushButton
,另一个QHBoxLayout
包含第二个QPushButton
(即嵌套布局)。如下所示: 如何完全删除QLayout的边距(Mac OS特定)
两个QHBoxLayout
s都有四个边界值(左,上,右,下)。我期望布局的边界(附加图像中的红色矩形)完全位于两个按钮的边界上,并且两个按钮垂直对齐。然而,很明显,在图像中看不到这种情况。第二个按钮比第一个按钮高一点。事实上,将底部边距设置为0到8之间没有视觉差异,底部边距仅从9像素增加,至少在Mac OS上。
此行为的任何解释?以及如何完全删除边距而不是调用layout->setContentsMargins(0,0,0,0)
?
我知道QStyle::PM_LayoutBottomMargin
等QStyle::PixelMetric
,这应该是特定平台上的默认底部边距。但为什么这些值不会被layout->setContentsMargins(0,0,0,0)
覆盖?
编辑:我只是在Windows上尝试过,确实一切都如预期(无边距)。所以这个问题只能在Mac OS上重现。
你指的是正确的方法在Qt设计器,或在代码? 'setContentsMargins(0,0,0,0)'适用于代码,否则,使用Qt Creator中的属性窗口进行适当的布局,将边距设置为0. – owacoder
当我构建相同的东西时,我没有看到这个问题。实际上,我的默认内容利润率已经为零。你能发布.ui文件吗? – goug
@owacoder,其实我是指两者。我通过设置'setContentsMargins(0,0,0,0)'在我的代码中发现了这个问题,后来在Qt Designer中尝试过,它将margin属性设置为0后给出了相同的结果。 – Wayee