QBoxLayout 类水平或垂直排列子级 Widget。 更多...
头: | #include <QBoxLayout> |
CMake: |
find_package(Qt6 COMPONENTS Widgets REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
继承: | QLayout |
继承者: | QHBoxLayout and QVBoxLayout |
enum | Direction { LeftToRight, RightToLeft, TopToBottom, BottomToTop } |
QBoxLayout (QBoxLayout::Direction dir , QWidget * parent = nullptr) | |
virtual | ~QBoxLayout () |
void | addLayout (QLayout * layout , int stretch = 0) |
void | addSpacerItem (QSpacerItem * spacerItem ) |
void | addSpacing (int size ) |
void | addStretch (int stretch = 0) |
void | addStrut (int size ) |
void | addWidget (QWidget * widget , int stretch = 0, Qt::Alignment alignment = Qt::Alignment()) |
QBoxLayout::Direction | direction () const |
void | insertItem (int index , QLayoutItem * item ) |
void | insertLayout (int index , QLayout * layout , int stretch = 0) |
void | insertSpacerItem (int index , QSpacerItem * spacerItem ) |
void | insertSpacing (int index , int size ) |
void | insertStretch (int index , int stretch = 0) |
void | insertWidget (int index , QWidget * widget , int stretch = 0, Qt::Alignment alignment = Qt::Alignment()) |
void | setDirection (QBoxLayout::Direction direction ) |
void | setStretch (int index , int stretch ) |
bool | setStretchFactor (QWidget * widget , int stretch ) |
bool | setStretchFactor (QLayout * layout , int stretch ) |
int | stretch (int index ) const |
virtual void | addItem (QLayoutItem * item ) override |
virtual int | count () const override |
virtual Qt::Orientations | expandingDirections () const override |
virtual bool | hasHeightForWidth () const override |
virtual int | heightForWidth (int w ) const override |
virtual void | invalidate () override |
virtual QLayoutItem * | itemAt (int index ) const override |
virtual QSize | maximumSize () const override |
virtual int | minimumHeightForWidth (int w ) const override |
virtual QSize | minimumSize () const override |
virtual void | setGeometry (const QRect & r ) override |
virtual void | setSpacing (int spacing ) override |
virtual QSize | sizeHint () const override |
virtual int | spacing () const override |
virtual QLayoutItem * | takeAt (int index ) override |
QBoxLayout 占用它获得的空间 (从其父级布局或从 parentWidget ()),将其分成行框,并使每个被管理的 Widget 填充一个框。
若 QBoxLayout 的取向为 Qt::Horizontal 框按合适尺寸排成一行。每个 Widget (或其它框) 将至少获得其最小尺寸和最多获得其最大尺寸。任何多余空间根据拉伸因子共享 (详见下文)。
若 QBoxLayout 的取向为 Qt::Vertical ,框将再次采用合适尺寸排成一列。
最轻松方式创建 QBoxLayout 是使用某个方便类,如 QHBoxLayout (对于 Qt::Horizontal 框) 或 QVBoxLayout (对于 Qt::Vertical 框)。也可以直接使用 QBoxLayout 构造函数,指定其方向为 LeftToRight , RightToLeft , TopToBottom ,或 BottomToTop .
若 QBoxLayout 不是顶层布局 (即:它不管理 Widget 的所有区域和子级),必须将它添加到其父级布局,在采用它做任何事情之前。添加布局的正常方式是通过调用 parentLayout-> addLayout ().
一旦这样做,就可以将框添加到 QBoxLayout 使用下列 4 函数之一:
使用 insertWidget (), insertSpacing (), insertStretch () 或 insertLayout () 以在布局中指定位置插入框。
QBoxLayout 还包括 2 种边距宽度:
边距默认由样式提供。大多数 Qt 样式指定的默认边距对于 Widget 为 9,对于窗口为 11。间距默认与顶层布局边距宽度相同,或与父布局相同。
要从布局移除 Widget,调用 removeWidget ()。调用 QWidget::hide () 在 Widget 还会从布局高效移除小部件,直到 QWidget::show () 被调用。
几乎总是会想要使用 QVBoxLayout and QHBoxLayout 而不是 QBoxLayout 因为它们的方便构造函数。
另请参阅 QGridLayout , QStackedLayout ,和 布局管理 .
此类型用于确定框布局的方向。
常量 | 值 | 描述 |
---|---|---|
QBoxLayout::LeftToRight
|
0
|
水平从左到右。 |
QBoxLayout::RightToLeft
|
1
|
水平从右到左。 |
QBoxLayout::TopToBottom
|
2
|
垂直从上到下。 |
QBoxLayout::BottomToTop
|
3
|
垂直从下到上。 |
构造新 QBoxLayout 采用方向 dir 和父级小部件 parent .
将直接把布局设为顶层布局对于 parent 。Widget 只可以有一个顶层布局。返回它通过 QWidget::layout ().
另请参阅 direction () 和 QWidget::setLayout ().
[虚拟]
QBoxLayout::
~QBoxLayout
()
销毁此框布局。
不销毁布局 Widget。
[override virtual]
void
QBoxLayout::
addItem
(
QLayoutItem
*
item
)
重实现: QLayout::addItem (QLayoutItem *item).
添加 layout 到方框末尾,采用连续拉伸因子 stretch .
另请参阅 insertLayout (), addItem (),和 addWidget ().
添加 spacerItem 到此方框布局的末尾。
另请参阅 addSpacing () 和 addStretch ().
添加不可拉伸空间 ( QSpacerItem ) 采用尺寸 size 到此方框布局的末尾。 QBoxLayout 提供默认边距和间距。此函数添加额外空间。
另请参阅 insertSpacing (), addItem (),和 QSpacerItem .
添加可拉伸空间 ( QSpacerItem ) 采用 0 最小尺寸和拉伸因子 stretch 到此方框布局的末尾。
另请参阅 insertStretch (), addItem (),和 QSpacerItem .
限制框的垂直尺度 (如:高度若框是 LeftToRight ) 到最小 size 。其它约束可能递增限制。
另请参阅 addItem ().
添加 widget 到此框布局的末尾,采用拉伸因子 stretch 和对齐 alignment .
拉伸因子仅适用于 direction 的 QBoxLayout ,且相对于其它框与 Widget 在此 QBoxLayout 。具有更高拉伸因子的 Widget 与框增长更多。
若拉伸因子为 0 且什么都没有除非 QBoxLayout 拥有大于 0 的拉伸因子,空间分布将根据 QWidget :sizePolicy() 对于涉及的每个 Widget。
对齐方式的指定是通过 alignment 。默认对齐为 0,意味着 Widget 填充整个单元格。
另请参阅 insertWidget (), addItem (), addLayout (), addStretch (), addSpacing (),和 addStrut ().
[override virtual]
int
QBoxLayout::
count
() const
重实现: QLayout::count () const.
返回框的方向。 addWidget () 和 addSpacing () 工作于此方向;拉伸将在此方向延伸。
另请参阅 setDirection (), QBoxLayout::Direction , addWidget (),和 addSpacing ().
[override virtual]
Qt::Orientations
QBoxLayout::
expandingDirections
() const
重实现: QLayout::expandingDirections () const.
[override virtual]
bool
QBoxLayout::
hasHeightForWidth
() const
重实现: QLayoutItem::hasHeightForWidth () const.
[override virtual]
int
QBoxLayout::
heightForWidth
(
int
w
) const
重实现: QLayoutItem::heightForWidth (int) const.
插入 item 到此框布局在位置 index 。若 index 为负,项被添加在末尾。
另请参阅 addItem (), insertWidget (), insertLayout (), insertStretch (),和 insertSpacing ().
插入 layout 在位置 index ,采用拉伸因子 stretch 。若 index 为负,布局被添加在末尾。
layout 变为框布局的子级。
另请参阅 addLayout () 和 insertItem ().
插入 spacerItem 在位置 index ,采用 0 最小尺寸和拉伸因子。若 index 为负,空间被添加在末尾。
另请参阅 addSpacerItem (), insertStretch (),和 insertSpacing ().
插入不可拉伸空间 ( QSpacerItem ) 在位置 index ,采用尺寸 size 。若 index 为负,空间被添加在末尾。
框布局具有默认的边距和间距。此函数添加额外空间。
另请参阅 addSpacing (), insertItem (),和 QSpacerItem .
插入可拉伸空间 ( QSpacerItem ) 在位置 index ,采用 0 最小尺寸和拉伸因子 stretch 。若 index 为负,空间被添加在末尾。
另请参阅 addStretch (), insertItem (),和 QSpacerItem .
插入 widget 在位置 index ,采用拉伸因子 stretch 和对齐 alignment 。若 index 为负,Widget 被添加到末尾。
拉伸因子仅适用于 direction 的 QBoxLayout ,且相对于其它框与 Widget 在此 QBoxLayout 。具有更高拉伸因子的 Widget 与框增长更多。
若拉伸因子为 0 且什么都没有除非 QBoxLayout 拥有大于 0 的拉伸因子,空间分布将根据 QWidget :sizePolicy() 对于涉及的每个 Widget。
对齐方式的指定是通过 alignment 。默认对齐为 0,意味着 Widget 填充整个单元格。
另请参阅 addWidget () 和 insertItem ().
[override virtual]
void
QBoxLayout::
invalidate
()
重实现: QLayout::invalidate ().
重置缓存信息。
[override virtual]
QLayoutItem
*QBoxLayout::
itemAt
(
int
index
) const
重实现: QLayout::itemAt (int index) const.
[override virtual]
QSize
QBoxLayout::
maximumSize
() const
重实现: QLayout::maximumSize () const.
[override virtual]
int
QBoxLayout::
minimumHeightForWidth
(
int
w
) const
重实现: QLayoutItem::minimumHeightForWidth (int w) const.
[override virtual]
QSize
QBoxLayout::
minimumSize
() const
重实现: QLayout::minimumSize () const.
将此布局的方向设为 direction .
另请参阅 direction ().
[override virtual]
void
QBoxLayout::
setGeometry
(const
QRect
&
r
)
重实现: QLayout::setGeometry (const QRect &r).
[override virtual]
void
QBoxLayout::
setSpacing
(
int
spacing
)
重实现访问函数为特性: QLayout::spacing .
重实现 QLayout::setSpacing ()。把间距特性设为 spacing .
另请参阅 QLayout::setSpacing () 和 spacing ().
设置拉伸因子在位置 index 。到 stretch .
另请参阅 stretch ().
设置拉伸因子为
widget
to
stretch
和返回 true 若
widget
在此布局中被找到 (不包括子级布局);否则返回
false
.
另请参阅 setAlignment ().
这是重载函数。
设置拉伸因子为布局
layout
to
stretch
并返回
true
if
layout
在此布局中被找到 (不包括子级布局);否则返回
false
.
[override virtual]
QSize
QBoxLayout::
sizeHint
() const
重实现: QLayoutItem::sizeHint () const.
[override virtual]
int
QBoxLayout::
spacing
() const
重实现访问函数为特性: QLayout::spacing .
重实现 QLayout::spacing ()。若间距特性有效,返回该值。否则,计算并返回间距特性的值。由于 Widget 布局间距从属样式,因此,若父级是 Widget,它会查询样式为布局 (水平或垂直) 间距。否则,若父级是布局,它会查询父级布局为 spacing()。
另请参阅 QLayout::spacing () 和 setSpacing ().
返回拉伸因子在位置 index .
另请参阅 setStretch ().
[override virtual]
QLayoutItem
*QBoxLayout::
takeAt
(
int
index
)
重实现: QLayout::takeAt (int index).