通过一个实例基本布局管理,演示QHBoxLayout类、QVBoxLayout类及QGridLayout类效果
本实例共用到四个布局管理器,分别是 LeftLayout、RightLayout、BottomLayout和MainLayout。
在源文件“dialog.cpp”具体代码如下:
运行效果:
SetFrameStyle()是QFrame 的方法,参数以或(|)的方式设定控件的面板风格,由形状(QFrame::Shape)和阴影(QFrame::shadow)两项配合设定。
其中,形状包括六种,分别是NoFrame、Panel、Box、HLine、VLine 及WinPanel;
阴影包括三种,分别是Plain、Raised和Sunken。
setSizeConstraint是Qt中的一种函数,它可以用来控制小部件的大小限制方式。它的基本作用就是确定小部件应该如何处理自己的大小信息。
(1)QLayout::SetFixedSize: 小部件使用固定的大小,而不考虑小部件的内容或其他因素。(2)QLayout::SetMinimumSize:小部件至少应该有多大,但允许它变得更大。(3)QLayout::SetMaximumSize: 小部件最多可以有多大,但允许它变得更小。(4)QLayout::SetDefaultSize: 小部件在其没有明确设定大小时应使用的默认大小。
最优化显示,即控件都按其 sizeHint()的大小显示。
ButtomLayout->addStretch():在按钮之前插入一个占位符,使两个按钮能够靠右对齐,并且在整个对话框的大小发生改变时,保证按钮的大小不发生变化。
addStretch()用于在布局中添加可伸缩空间。这意味着该空间将根据需要扩展或收缩以填充布局中的任何额外空间。 例如,如果在一个水平布局中有三个小部件,并且希望中间的小部件占据所有可用空间,则可以在中间小部件之前和之后添加一个拉伸。
注意:QHBoxLayout默认采取的是以自左向右的方式顺序排列插入控件或子布局,也可通过调用 setDirection()方法设定排列的顺序(如layout-> setDirection(QBoxLayout:: RightToLeft))。QVBoxLayout 默认采取的是以自上而下的方式顺序排列插入控件或子布局,同理也可通过调用 setDirection()方法设定排列的顺序。
通常,QGridLayout功能能够完成QHBoxLayout与QVBoxLayout的功能,但若只是完成简单的水平或竖直的排列,则使用后两个更方便,而QGridLayout 适合较为方正整齐的界面布局。