按钮自动调整大小

3
我正在使用PyQt5,尝试防止推按钮自动调整大小。因此,我使用了以下代码来实现这一目标。我的目的是如果我创建一个具有固定大小的按钮,则它不会自动调整大小。所以我编写了以下代码:
rect = QtCore.QRect()
rect.setSize(QtCore.QSize(5, 80))
button.setGeometry(rect)

但它并没有生效。相同的调整大小问题仍然存在。出了什么问题?

它有自己的BoxLayout,默认为expand。在相同的BoxLayout中添加垂直或水平Spacer,并将其策略设置为Expanding,该Spacer将占用小部件拥有的所有空间,使您的按钮具有定义的大小。 - ipaleka
@ipaleka,我已经查看了官方文档,但是没有提到这个问题。我应该从哪里获取完整的信息?你是怎么知道的呢?我问这个问题是因为我很新,想要学习。请帮帮我。 - Man_From_India
1
好的,您必须在某个东西内运行代码才能出现调整按钮大小的问题,但是您提供的内容无法运行,甚至没有按钮。我们应该能够简单地复制/粘贴您提交的代码并重现您的问题。当然,我认为最小可重现示例的链接已经解释了所有这些,您有阅读吗? - Dennis Jensen
@DennisJensen 嗯,我不知道你指的是什么?是的,我会提供我编写的完整代码,当然非常小,因为它是用于学习和演示目的。但我无法理解问题的原因,而且我真的不知道第一位评论者从哪里获取的信息。我会粘贴更好的代码,请给我一些时间。 - Man_From_India
1个回答

2
如果你想让一个小部件保持它的大小,那么你必须使用setFixedSize()
button.setFixedSize(QtCore.QSize(5, 80))

如果您的按钮在布局中,则会使用sizePolicy确定其大小行为,对于按钮而言,它是: 因此,按钮通常在水平方向上调整大小,而不是在垂直方向上。

如果它没有在布局中呢? - Man_From_India
@Man_From_India 那么按钮的大小不应该改变,如果没有设置大小,则使用sizeHint(),如果设置了大小,则会考虑sizeHint()和minimumSizeHint()。 - eyllanesc
@Man_From_India 我觉得你没有理解文档,我建议你进行实验,然后你就能更好地理解文档。一开始可能会有些困惑(我也曾经遇到过这个问题),但只要你实施测试,一切都会变得清晰明了。 - eyllanesc
抱歉,问题是我被禁止再提出任何问题。 - Man_From_India
基本小部件规则:1)如果一个小部件是窗口的子级或窗口的小部件的子级,则该小部件仅是窗口的一部分。2)布局不是小部件或可见元素,它们只处理它们的几何形状。总之,添加到布局中的任何小部件都是在建立布局的小部件的子级。 - eyllanesc
显示剩余9条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接