Qt设计dialog窗口的最大化和控件随窗体的改变

来源:互联网 发布:伊尔汗国 知乎 编辑:程序博客网 时间:2024/05/30 05:00

1)最近在玩Qt和VTK,在设计界面的时候用到了dialog,但是该界面默认情况下仅有“这是什么”和“关闭”,而没有“最大化”该窗口。所以需要进行对其UI进行修改,可以在加载该ui之后,在代码中加入以下的代码:

setWindowFlags(Qt::Dialog | Qt::WindowMaximizeButtonHint);// 

便可以使得窗口有最大和最小化的按钮!

2)但是在最大化过程中发现,原先设计的控件并没有随着窗口的最大化而进行等比例地增大。所以需要进行一番的设置。

首先,选中控件,右击之后,弹出的快捷菜单中包括:

HorizontalLayouts and Vertical Layouts,水平和垂直布局;

The Grid Layout ,网格布局;

Splitter Layouts,分割器布局;

The Form Layout,窗体布局。这些布置依照个人的实际需求进行!

对所有控件进行布局后,然后,单击选中主窗口(注意是单击主窗口,先取消对所有控件的选择,只选中主窗口),右击之,在弹出的快捷菜单中选择一种布局形式如“Lay Out Vertically”,建立顶级布局管理器。关键是要建立顶级的布局管理器!如下图,建立的前后情况对比。左图为建立顶级布局管理器之前,右图为建立顶级布局管理器之后。


这便完成了窗体控件随窗口的最大化而进行变化。网上有些资料所要设置

1、大小提示(size hint)和最小大小提示(minimum size hint)

2、大小策略(size policy)
3、伸缩因子(stretch factor)
4、大小约束(size constraint)
5、空白(margin)和间距(spacing)

但是在实际中,我并没有设置这些参数。。。这可能需要再进行探索一下。