有时候布局中的控件无法完全表明,或是我希望子控件能临时占有更多表明室内空间,最后我们需要使用另一个布局管理方法分割器。
当鼠标移动到子控件间的间隔线时,电脑鼠标就会变成下列样子
3.3.1 QSplitter1 childrenCollapsible 子控件能不能伸缩?
2 handleWidth 分割线总宽。
3 opaqueResize 是不是马上更改尺寸。
true-默认设置前提下,当拖拽分割线时,控件随分割线运行。false-拖拽分割线时,仅有分割线挪动,松掉电脑鼠标后,控制器才可以更改尺寸。4 orientation 切分方位,水准或竖直。
3.3.2.1 saveState()和restoreState()
维持系统状态和修复之前情况。在我们应用分割器时,很多控制器大小会发生改变,当我们要想修复一定的状态下,大家可以用这俩函数公式。
如果你开发软件再度打开后,要想恢复正常上一次的布局界面,那也可以用这俩函数公式,隐私功能,我在下文的事例中来给大家演试。
3.3.2.2 sizes()和setSizes()
在分割器中获得和设定每一个控件的间距或高度。
假如分割器是水准的,则每一个控制器的总宽将从左往右设定。假如分割器是垂直,则每一个控制器的高度将从上向下设定。
页面上的附加值被忽略了。假如页面上数值过小,则结论不界定,但程序流程依然非常好。
分割器整体的规格影响不大。反过来,控件中分布着一切附加/缺乏的室内空间,依据的尺寸相对性净重(伸缩式因素)。
若特定规格为0,则控件将看不到。
保存控件尺寸对策。也就是说,低于控件较小的规格提醒值要被提醒值所替代。
3.3.3.1 显隐控件
当掩藏一个控件时,它室内空间将分给别的控件。当它们再度表明时,这将被修复。
3.3.3.2 布局器与分割器对比
在QSplitter不可以直接加上QLayout是的,主要是因为QSplitter承继自QFrame的,而QLayout承继自QObject和QLayoutItem是的,布局是一套优化算法,QSplitter是对话框控件,无法直接加上,仅有布局才可以加上子布局。
由于QSplitter是窗子控制器,完全可以用setLayout()进而使QSplitter做为QLayout成员变量进而使用addWidget()取代。