QPushButton 的大小打破了布局高度(MacOS)

Posted

技术标签:

【中文标题】QPushButton 的大小打破了布局高度(MacOS)【英文标题】:The size of QPushButton breaks layout height (MacOS) 【发布时间】:2014-11-04 10:33:03 【问题描述】:

让我们考虑一下 QFormLayout 的情况。例如需要在布局行中添加按钮:

如您所见,按钮布局的高度大于其他行的高度。这是因为按钮本身的高度大于行编辑器的高度——按钮周围有空白:

结果所有带有 QPushButton 的布局都被破坏了。即使在标准对话框(QMessageBox)中,窗口底部的按钮周围也有很大的边距。

据我所知,此问题仅与 MacO 相关。 有一些类似的问题here 和here,但是没有答案为什么 Mac 上的 QPushButton 有这样的大小,以及如何正确解决这个问题。

【问题讨论】:

最小尺寸提示的问题。 【参考方案1】:

IMO 这是边距问题。使用不同的样式(在 OSX 上使用)边距被改变,你有这个效果。

尝试通过设置样式表来调整:

pushButton->setStyleSheet("QPushButton \n"
                          "    margin: 2px;\n"
                          "\n")

【讨论】:

这是一个糟糕的解决方案,因为按钮失去了形状 - 变成了方形。

以上是关于QPushButton 的大小打破了布局高度(MacOS)的主要内容,如果未能解决你的问题,请参考以下文章

python,关于动态QPushButton布局

UIScrollView setContentSize 使用自动布局打破视图

iPhone 6+ 的约束打破了动态调整单元格的大小

通过文本字段上的自动布局调整字体大小并改变高度

使用自动布局,IB和字体大小时,表头视图高度是错误的

详解Flex弹性布局