使用布局管理器可以使控件自适应窗口大小,但是存在几个坑。
第一,使用布局管理器后无法手动调整布局管理器中的大小,只能通过调整主窗口的大小控制布局管理器的大小让它自动调整,如果想要让布局管理器中的控件以自己想要的形式进行排布,只能通过调整布局中各个控件所占空间的比例,以自己希望的比例显示。通过setStretch函数,或者从ui设计师中进行设置。
第二,使用布局管理器的时候,Geometry的值是sizehint的默认值,这个值一般不是我们想要的,控件在在调用构造器之前是不确定的,而使用布局后这个值在ui设计师中是不能被改变的,所以如果想要获得想要的大小,需要在ui的头文件中手动的调整Geometry,在头文件中设置之后,就可以得到正确的大小,不过这种方法需要先知道控件需要的大小。(在显示OpenGL时对控件进行缩放是否有影响未知,还没试)。
第三,qt在布局时存在sizehint,是默认的大小,控件在调用resize之类的函数时会调用,但是在不使用布局时,sizehint没有用。
以上内容可能存在错误,之后针对这些问题再进行修正。