1.先参考这个大哥的文章,可以解决问题,原因如文中所说:
在窗口resize(w,h)
时如果w或者h的值小于窗口内某个控件的w,h,那么resize就在这个方向上无效,此时Qt会自动生成一个合适的值。
resize是根据height和width重新绘制窗体;
setFixedSize本意是设置固定窗体大小,其本质应该不能在变动了,所以setFixedSize和setMinimumSize以及setMaximumSize一起使用,总觉得不是正常的使用方法。而且我觉得resize是不是也可以通过其他操作实现这一效果。
在Qt5的官方网站查找resize的解释:
红框中解释:当设置的尺寸不在最小和最大尺寸之间时,设置的尺寸会进行调整。
所以,是不是存在另外一种解决的办法:
先将最小和最大尺寸重新定义为0和max,再去调用resize是不是也就解决了呢?
使用下述代码亲测有效。
self.setMinimumSize(0, 0)
self.setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX))
self.resize(700, 200)