StupidBeauty
Read times:1369Posted at:Fri Dec 2 21:31:36 2011
- no title specified

Qt4.7文档翻译:QBoxLayout类参考,QBoxLayout Class Reference

详细描述

QBoxLayout 类将子代部件们水平或竖直地排列起来。

QBoxLayout拿着它(从亲代布局器或 parentWidget ()(亲代部件))获得的空间,分割成几個盒子(boxes),再让每个被管理的部件填满其中一個盒子。

如果QBoxLayout的方向是 Qt::Horizontal (水平),则盒子们被放置在一行中,并且分配好尺寸。每個部件(或是其它的盒子)最少会获得它的最小尺寸,最多会获得它的最大尺寸。任何额外的空间都会按照拉伸因子来分配共享(下面会细说)。

如果QBoxLayout 的方向是 Qt::Vertical (竖直),则盒子们被放置在一列中,同样会分配好尺寸。

最简单的创建QBoxLayout 的方式就是使用其中一個便利类,比如 QHBoxLayout (用于 Qt::Horizontal 盒子)或 QVBoxLayout (用于 Qt::Vertical 盒子)。妳还可以直接使用QBoxLayout 构造函数,并且指定方向为 LeftToRight RightToLeft TopToBottom BottomToTop

如果这個QBoxLayout 不是顶级的布局器的话(也就是说,它并没有管理当前部件的全部区域及子代对象),那么妳必须在对它做任何事之前先将它添加到一個亲代布局器中。一般的添加布局器的方法就是调用parentLayout-> addLayout ()。

一旦妳做完咯这個,妳就可以用四個函数中的一個来向这個QBoxLayout 中添加盒子:

  • •. addWidget (),添加一個部件到这個QBoxLayout 中,并且设置其拉伸因子。(拉伸因子的方向与盒子的排列方向一致。)

  • •. addSpacing (),添加一個空盒子;这是用来创建漂亮大方的对话框的函数之一。继续看下面的内容以了解如何设置边距(margins)。

  • •. addStretch (),添加一個空的可拉伸的盒子。

  • •. addLayout (),添加一個包含另一個 QLayout 的盒子,并且设置它的拉伸因子。

使用 insertWidget ()、 insertSpacing ()、 insertStretch ()或 insertLayout ()来在布局器中的指定位置插入一個盒子。

QBoxLayout还包含两个边距宽度:

  • •. setContentsMargins (),设置这個部件的每個方向上的外边框的宽度。这是在这個QBoxLayout 的四個方向上的保留空间的宽度。

  • •. setSpacing (),设置相邻的盒子之间的宽度。(妳可使用 addSpacing ()来在某個特定的位置保留更多空白。)

边距的默认值是由风格提供的。大部分Qt 风格设置的默认边距是:对于子代部件为9,对于窗口为11.空白的默认值与顶级布局器的边距或亲代布局器空白默认值相同。

要想从布局器中删除一个部件,则调用 removeWidget ()。对某個部件调用 QWidget::hide ()也会起到删除部件的效果,除非又调用 QWidget::show ()。

一般情况下,妳应该会使用 QVBoxLayout QHBoxLayout ,而不是QBoxLayout,因为它们方便得多。

参考 QGridLayout QStackedLayout 布局管理

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands