设置QBoxLayout的最大尺寸?

2 投票
3 回答
10724 浏览
提问于 2025-04-16 14:11

我明显有些搞不清楚,请帮我解答一下。

AttributeError: 'QVBoxLayout' object has no attribute 'setMaximumSize'

我看了好一段时间的Qt文档,但就是无法让这个东西正常工作。

3 个回答

0

就像那个错误信息告诉你的,布局是没有 setMaximumSize 这个方法的。

但是 QWidget 是有这个方法的。

1

你不能直接设置 maximumSize 属性,因为这个值是由布局动态决定的。也许你想把 QLayout.SizeConstraint 设置为 QLayout.SetMaximumSize?如果是这样,可以看看 QLayout.setSizeConstraint 方法。否则,如果你想为某个特定的控件设置一个确切的最大值,你应该调用 QWidget.setMaximumSize

4

据我所知,你不能为一个布局设置最大大小。为什么要这样做呢?我觉得没有意义(布局应该限制哪个子控件呢?)

关于 setMaximumSize - 布局是没有这个方法的。不过,有一个 QLayout::SetMaximumSize 的限制可以设置,但这个限制是针对使用这个布局的控件,而不是布局本身。这意味着控件的大小不能超过布局的最大大小,所以这和你想要的效果是完全不同的。

我建议你重新考虑一下你的真实目标 - 也许可以用其他方式来实现。例如,你可以为你的 QBoxLayout 中的每个单独控件设置最大大小。

撰写回答