- qtgui
- qtdbus
- qtwidgets
- qtcore
- dtkcore
- qsettingbackend_zh
- dobject_zh
- abstractappender_zh
- abstractstringappender_zh
- dfilewatcher_zh
- outputdebugappender_zh
- dsettingsbackend_zh
- drecentmanager_zh
- ddesktopentry_zh
- consoleappender_zh
- gsettingsbackend_zh
- dsettingsgroup_zh
- dlogmanager_zh
- fileappender_zh
- dsettings_zh
- dfilesystemwatcher_zh
- dfilewatchermanager_zh
- dbasefilewatcher_zh
- dtkgui
- dtkwidget
- dviewitemaction_zh
- dstandarditem_zh
- dfiledialog_zh
- dclipeffectwidget_zh
- danchors_zh
- dgraphicsclipeffect_zh
- dstyle_zh
- dcoloredprogressbar_zh
- dbuttonboxbutton_zh
- dlabel_zh
- dtiplabel_zh
- darrowlinedrawer_zh
- daboutdialog_zh
- dsettingswidgetfactory_zh
- dsearchcombobox_zh
- dcrumbedit_zh
- dcommandlinkbutton_zh
- dsettingsdialog_zh
- dwindowoptionbutton_zh
- dspinner_zh
- dsimplelistview_zh
- dwaterprogress_zh
- dmainwindow_zh
- dhidpihelper_zh
- dslider_zh
- dpasswordedit_zh
- danchorinfo_zh
- dmpriscontrol_zh
- darrowbutton_zh
- dbackgroundgroup_zh
- dcircleprogress_zh
- dwarningbutton_zh
- dwindowclosebutton_zh
- dvideowidget_zh
- dfilechooseredit_zh
- dblureffectwidget_zh
- darrowrectangle_zh
- dsearchedit_zh
- dfloatingmessage_zh
- dswitchlineexpand_zh
- dtabbar_zh
- dlineedit_zh
- danchorsbase_zh
- dstylediconengine_zh
- dwindowmaxbutton_zh
- dpageindicator_zh
- dsuggestbutton_zh
- dapplicationsettings_zh
- dtooltip_zh
- dwindowminbutton_zh
- ddrawer_zh
- dtitlebar_zh
- dsimplelistitem_zh
- dpicturesequenceview_zh
qlayout_zh
Class::QLayout
暂无该属性
Detailed Description
QLayout 类是几何管理器的基类。 这是一个抽象的基类,由具体的类 QBoxLayout 、 QGridLayout 、 QFormLayout 和 QStackedLayout 继承。
使用 QLayout 子类或 QMainWindow ,几乎不需要使用 QLayout 提供的基础函数,例如 setSizeConstraint() 或 setMenuBar() 。有关更多信息,请参见 Layout Management 。
要创建自己的布局管理器,需要实现函数 addItem() , sizeHint() , setGeometry() , itemAt() 和 takeAt() 。 还应该实现 minimumSize() ,以确保在空间不足的情况下不会将布局大小调整为零。 为了支持高度取决于其宽度的子级,需要实现 hasHeightForWidth() 和 heightForWidth() 。有关实现自定义布局管理器的更多信息,请参见 layouts/borderlayout 和 layouts/flowlayout 示例。
删除布局管理器后,几何管理将停止。
See also QLayoutItem Layout Management Basic Layouts Example Border Layout Example Flow Layout Example
QLayout::QLayout
QLayout(QWidget *parent)
构造一个新的顶层 QLayout ,其父级为_parent_。_parent_不能是nullptr
。
该布局会被直接设置为_parent_的顶级布局。一个部件只能有一个顶层布局。 QWidget::layout() 返回顶层布局。
QLayout::QLayout
QLayout() 构造一个新的子 QLayout 。
在几何管理器开始工作之前,必须先将此布局插入另一个布局。
QLayout::QLayout
QLayout(const QLayout &)
QLayout::QLayout
QLayout(QLayoutPrivate &dd, QLayout *lay, QWidget *w)
QLayout::activate
bool activate() 如果有必要,重做 parentWidget() 的布局。
通常不需要调用此函数,因为它是在最适当的时间自动调用的。如果重新布局,则返回True。
See also update() QWidget::updateGeometry()
QLayout::activateRecursiveHelper
void activateRecursiveHelper(QLayoutItem *item)
QLayout::addChildLayout
void addChildLayout(QLayout *l)
布局_l_作为子布局添加到布局中,可以在子类的addLayout()
或insertLayout()
函数中调用此函数。
需要直接调用它的唯一情况是实现支持嵌套布局的自定义布局。
See also QBoxLayout::addLayout() QBoxLayout::insertLayout() QGridLayout::addLayout()
QLayout::addChildWidget
void addChildWidget(QWidget *w)
addWidget()
函数的子类调用此函数,将_w_添加为布局的托管窗口部件。
如果_w_已经被布局管理,则此函数将发出警告并从该布局中删除_w_。因此,必须在将_w_添加到布局的数据结构之前调用此函数。
QLayout::addItem
void addItem(QLayoutItem *item) = 0 在子类中实现添加_item_。 如何在每个子类特定的添加它。
在应用程序代码中通常不调用此函数。 要将部件添加到布局,请使用 addWidget() 函数;要添加子布局,请使用 QLayout 相关子类提供的 addLayout() 函数。
Note:_item_的所有有权已转移到布局,并且布局的责任是删除它。
See also addWidget() QBoxLayout::addLayout() QGridLayout::addLayout()
QLayout::addWidget
void addWidget(QWidget *w) 以特定于布局的方式将部件 _w_添加到此布局。 此函数使用 addItem() 。
QLayout::adoptLayout
bool adoptLayout(QLayout *layout)
QLayout::alignmentRect
QRect alignmentRect(const QRect &r) const 返回此布局的几何设置为_r_时被覆盖的矩形,前提是此布局支持 setAlignment() 。
结果是从 sizeHint() 和 expanding() 派生的。它永远不会比_r_大。
QLayout::childEvent
void childEvent(QChildEvent *e) override
QLayout::closestAcceptableSize
QSize closestAcceptableSize(const QWidget *widget, const QSize &size) 返回一个大小,该大小满足_widget_上的所有大小限制,包括 heightForWidth() ,并且尽可能接近_size_。
QLayout::contentsMargins
QMargins contentsMargins() const 返回布局周围使用的边距。
默认情况下, QLayout 使用样式提供的值。在大多数平台上,所有方向上的边距均为11像素。
See also setContentsMargins()
QLayout::contentsRect
QRect contentsRect() const 返回布局的 geometry() 矩形,但要考虑内容边距。
See also setContentsMargins() getContentsMargins()
QLayout::controlTypes
QSizePolicy::ControlTypes controlTypes() const override
QLayout::count
int count() const = 0 在子类中必须实现返回布局中的项目数。
See also itemAt()
QLayout::d_func
QLayoutPrivate * d_func()
QLayout::d_func
const QLayoutPrivate * d_func() const
QLayout::expandingDirections
Qt::Orientations expandingDirections() const override 返回此布局是否可以使用比 sizeHint() 更多的空间。 Qt::Vertical 或 Qt::Horizontal 的值表示它只想在一个维度上增长,而 Qt::Vertical | Qt::Horizontal 表示它希望在两个维度上都增长。
默认实现返回 Qt::Horizontal | Qt::Vertical 。子类重新实现它并且返回有意义的值需要基于其子窗口部件的 QSizePolicy 。
See also sizeHint()
QLayout::geometry
QRect geometry() const override See also setGeometry()
QLayout::getContentsMargins
void getContentsMargins(int *left, int *top, int *right, int *bottom) const
对于不是nullptr
的_left_,_top_,_right_和_bottom_,分别存储指针指向被命名位置边距的大小。
默认情况下, QLayout 使用样式提供的值。在大多数平台上,所有方向上的边距均为11像素。
See also setContentsMargins() QStyle::pixelMetric() QStyle::PM_LayoutLeftMargin QStyle::PM_LayoutTopMargin QStyle::PM_LayoutRightMargin QStyle::PM_LayoutBottomMargin
QLayout::indexOf
int indexOf(QWidget *widget) const 搜索此窗口部件布局中的_widget_(不包括子布局)。
返回_widget_的索引,如果未找到_widget_则返回-1。
默认实现使用 itemAt() 遍历所有条目。
QLayout::indexOf
int indexOf(QLayoutItem *layoutItem) const 搜索此布局中的布局条目_layoutItem_(不包括子布局)。
返回_layoutItem_的索引,如果未找到_layoutItem_则返回-1。
QLayout::invalidate
void invalidate() override
QLayout::isEmpty
bool isEmpty() const override
QLayout::isEnabled
bool isEnabled() const
如果启用了布局,则返回True
;否则,返回false
。
See also setEnabled()
QLayout::itemAt
QLayoutItem * itemAt(int index) const = 0 必须在子类中实现并返回布局项的_index_。 如果没有此条目,则该函数必须返回0。从0开始对所有条目进行连续编号。如果删除了某个项目,则其它条目将被重新编号。
此功能可用于迭代布局。以下代码将为部件的布局结构中的每个布局条目绘制一个矩形。
QLayout::layout
QLayout * layout() override
QLayout::margin
int margin() const See also setMargin()
QLayout::maximumSize
QSize maximumSize() const override 返回此布局的最大大小。 这是布局可以具有的最大尺寸,同时仍要遵守规格。
返回的值不包含 QWidget::setContentsMargins() 或 menuBar() 所需的空间。
默认实现允许无限调整大小。
QLayout::menuBar
QWidget * menuBar() const
返回为此布局设置的菜单栏;如果未设置菜单栏,则返回nullptr
。
See also setMenuBar()
QLayout::metaObject
const QMetaObject * metaObject() const override
QLayout::minimumSize
QSize minimumSize() const override 返回此布局的最小尺寸。 这是布局可以具有的最小尺寸,同时仍要遵守规格。
返回的值不包含 QWidget::setContentsMargins() 或 menuBar() 所需的空间。
默认实现允许无限调整大小。
QLayout::operator=
QLayout & operator=(const QLayout &)
QLayout::parentWidget
QWidget * parentWidget() const
返回此布局的父窗口部件,如果未在任何窗口部件上安装此布局,则返回nullptr
。
如果布局是子布局,则此函数返回父布局的父窗口部件。
See also parent()
QLayout::qt_metacall
int qt_metacall(QMetaObject::Call , int , void **) override
QLayout::qt_metacast
void * qt_metacast(const char *) override
QLayout::qt_static_metacall
void qt_static_metacall(QObject *, QMetaObject::Call , int , void **)
QLayout::removeItem
void removeItem(QLayoutItem *item) 从布局中删除布局条目_item_。 删除条目是调用者的责任。
需要注意该_item_可以是布局(因为 QLayout 继承了 QLayoutItem )。
See also removeWidget() addItem()
QLayout::removeWidget
void removeWidget(QWidget *widget) 从布局中删除_widget_部件。调用之后,调用方有责任为窗口部件提供合理的几何形状,或将窗口部件放回布局中,或在必要时显式隐藏它。
Note:_widget_部件的所有权与添加时的所有权相同。
See also removeItem() QWidget::setGeometry() addWidget()
QLayout::replaceWidget
QLayoutItem * replaceWidget(QWidget *from, QWidget *to, Qt::FindChildOptions options)
搜索部件_from_,如果找到,则将其用_to_替换。 成功返回包含部件_from_的布局条目。 否则返回nullptr
。 如果_options_包含Qt::FindChildrenRecursively
(默认),则搜索子布局以进行替换。中的任何其它_options_都将被忽略。
请注意,此返回的条目可能不属于此布局,而是一个子布局。
返回的布局条目不再属于该布局所有,应将其删除或插入到另一个布局中。窗口部件不再由布局管理,可能需要删除或隐藏。 窗口部件_from_的父指针保持不变。
此功能适用于内置 Qt 布局,但可能不适用于自定义布局。
See also indexOf()
QLayout::setAlignment
bool setAlignment(QWidget *w, Qt::Alignment alignment)
如果在此布局(不包括子布局)中找到_w_,将部件_w_的对齐方式设置为_alignment_并且返回 True,否则返回false
。
QLayout::setAlignment
bool setAlignment(QLayout *l, Qt::Alignment alignment) 这是一个重载方法。
如果在此布局(不包括子布局)中找到_l_,将布局_l_的对齐方式设置为_alignment_并且返回,否则返回false
。
QLayout::setContentsMargins
void setContentsMargins(int left, int top, int right, int bottom) 设置要在布局周围使用的_left_,_top_,_right_和_bottom_页边距。
默认情况下, QLayout 使用样式提供的值。在大多数平台上,所有方向上的边距均为11像素。
See also contentsMargins() getContentsMargins() QStyle::pixelMetric() QStyle::PM_LayoutLeftMargin QStyle::PM_LayoutTopMargin QStyle::PM_LayoutRightMargin QStyle::PM_LayoutBottomMargin
QLayout::setContentsMargins
void setContentsMargins(const QMargins &margins) 设置要在布局周围使用的_margins_。
默认情况下, QLayout 使用样式提供的值。在大多数平台上,所有方向上的边距均为11像素。
See also contentsMargins()
QLayout::setEnabled
void setEnabled(bool enable) 如果_enable_为 True,则启用此布局,否则禁用布局。
启用布局会根据更改进行动态调整;禁用布局不影响功能。
默认情况下,所有布局均处于启用状态。
See also isEnabled()
QLayout::setGeometry
void setGeometry(const QRect &r) override See also geometry()
QLayout::setMargin
void setMargin(int margin) See also margin()
QLayout::setMenuBar
void setMenuBar(QWidget *widget) 告诉几何管理器将菜单栏_widget_放置在 parentWidget() 的顶部, QWidget::contentsMargins() 的外部。 所有子窗口部件都放置在菜单栏底部边缘的下方。
See also menuBar()
QLayout::setSizeConstraint
void setSizeConstraint(QLayout::SizeConstraint ) See also sizeConstraint()
QLayout::setSpacing
void setSpacing(int ) See also spacing()
QLayout::sizeConstraint
QLayout::SizeConstraint sizeConstraint() const See also setSizeConstraint()
QLayout::spacing
int spacing() const See also setSpacing()
QLayout::takeAt
QLayoutItem * takeAt(int index) = 0 必须在子类中实现从布局中删除在_index_处的布局条目,然后返回该条目。如果没有此条目,则该函数将不执行任何操作并返回0。条目从0开始进行连续编号。如果删除了某个条目,则将对其它条目进行重新编号。
以下代码片段显示了一种从布局中删除所有条目的安全方法:
QLayout::totalHeightForWidth
int totalHeightForWidth(int w) const contentsMargins 和菜单栏都将考虑在内。
QLayout::totalMaximumSize
QSize totalMaximumSize() const contentsMargins 和菜单栏都将考虑在内。
QLayout::totalMinimumSize
QSize totalMinimumSize() const contentsMargins 和菜单栏都将考虑在内。
QLayout::totalSizeHint
QSize totalSizeHint() const contentsMargins 和菜单栏都将考虑在内。
QLayout::update
void update() 更新 parentWidget() 的布局。
通常,不需要调用此函数,因为它是在最适当的时间自动调用的。
See also activate() invalidate()
QLayout::widgetEvent
void widgetEvent(QEvent *e) 调整父窗口部件的大小时,执行子窗口部件的布局。 也处理部件的移除。_e_是事件
QLayout::~QLayout
~QLayout() 销毁布局,删除所有子布局。 当删除顶层布局时,几何管理器将停止工作。
如果删除子布局,则布局类可能会造成致命的困惑。
可能的值为:
QLayout::SetDefaultConstraintSetDefaultConstraint
Constant | Description |
---|---|
QLayout::SetDefaultConstraint | 主窗口部件的最小大小设置为 minimumSize() ,除非窗口部件已经具有最小大小。 |
QLayout::SetFixedSizeSetFixedSize | |
Constant | Description |
:------- | :----- |
QLayout::SetFixedSize | 主窗口部件的大小设置为 sizeHint() ; 它无法调整大小。 |
QLayout::SetMinimumSizeSetMinimumSize | |
Constant | Description |
:------- | :----- |
QLayout::SetMinimumSize | 主窗口部件的最小大小设置为 minimumSize() ; 它不能更小。 |
QLayout::SetMaximumSizeSetMaximumSize | |
Constant | Description |
:------- | :----- |
QLayout::SetMaximumSize | 主窗口部件的最大大小设置为 maximumSize() ; 它不能更大。 |
QLayout::SetMinAndMaxSizeSetMinAndMaxSize | |
Constant | Description |
:------- | :----- |
QLayout::SetMinAndMaxSize | 主窗口部件的最小大小设置为 minimumSize() ,其最大大小设置为 maximumSize() 。 |
QLayout::SetNoConstraintSetNoConstraint | |
Constant | Description |
:------- | :----- |
QLayout::SetNoConstraint | 部件不受约束。 |
See also setSizeConstraint() 此属性保存布局外部边框的宽度。 使用 setContentsMargins() 和 getContentsMargins() 替代。
See also contentsRect() spacing 此属性保存布局的调整大小模式。 默认模式为 QLayout::SetDefaultConstraint 。
此属性保存布局内部件之间的间距。 如果未显式设置任何值,则布局的间距将从父布局或父窗口部件的样式设置中继承。
对于 QGridLayout 和 QFormLayout ,可以使用 QGridLayout::setHorizontalSpacing() 和 QGridLayout::setVerticalSpacing() 设置不同的水平和垂直间距。 在这种情况下,返回-1。
See also contentsRect() getContentsMargins() QStyle::layoutSpacing() QStyle::pixelMetric()