Layout QML Type
为推入GridLayout 、RowLayout 或ColumnLayout 中的项目提供关联属性。更多...
| Import Statement: | import QtQuick.Layouts |
附加属性
- alignment : Qt.Alignment
- bottomMargin : real
(since QtQuick.Layouts 1.2) - column : int
- columnSpan : int
- fillHeight : bool
- fillWidth : bool
- horizontalStretchFactor : int
(since Qt 6.5) - leftMargin : real
(since QtQuick.Layouts 1.2) - margins : real
(since QtQuick.Layouts 1.2) - maximumHeight : real
- maximumWidth : real
- minimumHeight : real
- minimumWidth : real
- preferredHeight : real
- preferredWidth : real
- rightMargin : real
(since QtQuick.Layouts 1.2) - row : int
- rowSpan : int
- topMargin : real
(since QtQuick.Layouts 1.2) - useDefaultSizePolicy : enumeration
(since 6.8) - verticalStretchFactor : int
(since Qt 6.5)
详细说明
Layout 类型的对象会附加到布局的子项上,以提供有关该项的布局特定信息。附加对象的属性会影响布局对各项的排列方式。
例如,如果默认值不理想,您可以指定minimumWidth 、preferredWidth 和maximumWidth 。
当布局调整大小时,项目可能会扩大或缩小。因此,项目具有minimum size 、preferred size 和maximum size 属性。
如果未在项目上显式指定最小尺寸,则该尺寸将设置为0 ;如果未在项目上显式指定最大尺寸,则该尺寸将设置为Number.POSITIVE_INFINITY 。
对于布局,其隐含的最小和最大尺寸取决于布局的内容。
fillWidth 和fillHeight 属性可以是true 或false 。如果它们是false ,则项的大小将固定为其首选大小。否则,当布局调整大小时,该项将在其最小和最大大小之间伸缩。如果有多个项的fillWidth (或fillHeight )被设置为true ,则布局将根据这些项首选大小的比例来伸缩它们。
有关布局算法的更多详细信息,请参阅《Qt Quick Layouts 概述》。
注意:请 勿绑定布局中项的 x、y、width 或 height 属性,因为这会与 Layout 的目标相冲突,并可能导致绑定循环。 布局引擎使用 width 和 height 属性来存储根据 minimum/preferred/maximum 附加属性计算出的项目当前大小,这些属性在每次布局时都可能被覆盖。请使用Layout.preferredWidth 和Layout.preferredHeight ,或implicitWidth 和implicitHeight 来指定项目的首选大小。
另请参阅 GridLayout 、RowLayout 以及ColumnLayout 。
附加属性文档
Layout.alignment : Qt.Alignment [attached]
此属性允许您指定项目在其所占单元格内的对齐方式。
默认值为0 ,这意味着对齐方式将为Qt.AlignVCenter | Qt.AlignLeft 。如果仅指定了水平或垂直对齐标志,这些默认值同样适用:若仅指定了水平对齐标志,则默认的垂直对齐标志为Qt.AlignVCenter ;若仅指定了垂直对齐标志,则默认的水平对齐标志为Qt.AlignLeft 。
有效的对齐方式是以下标志的组合:
- Qt::AlignLeft
- Qt::AlignHCenter
- Qt::AlignRight
- Qt::AlignTop
- Qt::AlignVCenter
- Qt::AlignBottom
- Qt::AlignBaseline
Layout.bottomMargin : real [attached, since QtQuick.Layouts 1.2]
指定项目外部的底部边距。如果未设置该值,则将使用margins 中的值。
该属性在 QtQuick.Layouts 1.2 中引入。
另请参阅 margins 。
Layout.column : int [attached]
此属性允许您指定项目在GridLayout 中的列位置。
如果既未设置 `row ` 属性,也未设置此属性,则由布局决定为该项目分配哪个单元格。
默认值为 `0`。
另请参阅 row 和columnSpan 。
Layout.columnSpan : int [attached]
此属性允许您指定GridLayout 中某项的列跨度。
默认值为1 。
Layout.fillHeight : bool [attached]
如果该属性设置为true ,则在满足给定约束条件的前提下,该项的高度将尽可能大。如果该属性设置为false ,则该项的高度将固定为首选高度。默认值取决于该项的隐式(内置)尺寸策略。
注意:默认情况下, 对于布局,此属性的值为true 。
另请参阅 fillWidth 。
Layout.fillWidth : bool [attached]
如果此属性为true ,则该项目将在遵守给定约束的前提下尽可能地扩展宽度。如果该属性为false ,则该项目的宽度将固定为首选宽度。默认值取决于项目的隐式(内置)大小策略。
注意: 对于布局,该属性的默认 值为true 。
另请参阅 fillHeight 。
Layout.horizontalStretchFactor : int [attached, since Qt 6.5]
此属性可让您指定水平拉伸因子。 默认情况下,在线性布局中排列的两个相同项目将具有相同的大小,但如果第一个项目的拉伸因子为 1,而第二个项目的拉伸因子为 2,则第一个项目将力求占据可用空间的 1/3,第二个项目将力求占据可用空间的 2/3。 请注意,它们是否会精确占据可用空间的 1/3 和 2/3,取决于它们的大小提示。这是因为,例如当一个水平布局以最小宽度显示时,其所有子项也会相应地采用最小宽度。
同样地,当水平布局处于其首选宽度时,所有子项都将采用其首选宽度;当水平布局处于其最大宽度时,所有子项都将采用其最大宽度。无论各个子项的拉伸因子具体为何,此策略均会生效。 因此,拉伸因子仅决定子项在 preferredWidth 和maximumWidth 范围内的增长率。
默认值为-1 ,这意味着不应用任何拉伸因子。
注意:这 要求将Layout::fillWidth 设置为 true
该属性自 Qt 6.5 起引入。
另请参阅 verticalStretchFactor 。
Layout.leftMargin : real [attached, since QtQuick.Layouts 1.2]
指定项目外部的左边距。如果未设置该值,则将使用margins 中的值。
该属性在 QtQuick.Layouts 1.2 中引入。
另请参阅 margins 。
Layout.margins : real [attached, since QtQuick.Layouts 1.2]
将项目外部的所有边距设置为相同值。项目本身不会计算其自身的边距。是否计算边距由父元素决定。
具体来说,边距仅由 `ColumnLayout`、`RowLayout`、`GridLayout` 以及其他类似布局的容器(如 `SplitView`)进行计算,在这些容器中,随着边距的增加,项的有效单元格大小也会相应增大。
因此,如果一个带有边距的项目是另一个Item 的子项,其位置、大小和隐式大小将保持不变。
将边距与对齐方式结合使用时,将对包含边距在内的项目进行对齐。例如,一个垂直居中的项目,其顶部边距为1 ,底部边距为9 ,将导致该项目在单元格内的实际对齐位置比中心高 4 像素。
默认值为0 。
该属性在 QtQuick.Layouts 1.2 中引入。
另请参阅 leftMargin 、topMargin 、rightMargin 和bottomMargin 。
Layout.maximumHeight : real [attached]
默认值是该项的隐式最大高度。
如果该项目是一个布局,则其隐式最大高度即为该布局在不让任何子项超出其最大高度的情况下所能达到的最大高度。对于任何其他项目,其隐式最大高度均为Number.POSITIVE_INFINITY 。
将此值设置为 `-1 ` 将把高度重置为其隐式最大高度。
另请参阅 minimumHeight 和preferredHeight 。
Layout.maximumWidth : real [attached]
该属性存储布局中某个项的最大宽度。默认值是该项的隐式最大宽度。
如果该项目本身是一个布局,则其隐式最大宽度即为该布局在不导致任何子项目超出其最大宽度的情况下所能达到的最大宽度。对于其他任何项目,其隐式最大宽度均为Number.POSITIVE_INFINITY 。
将此值设置为 `-1 ` 将把宽度重置为其隐式最大宽度。
另请参阅 minimumWidth 和preferredWidth 。
Layout.minimumHeight : real [attached]
该属性用于指定布局中某个项的最小高度。默认值为该项的隐式最小高度。
如果该项目本身是一个布局,则其隐式最小高度即为该布局在不让任何子项高度缩小至其最小高度以下时所能达到的最小高度。对于任何其他项目,其隐式最小高度为0 。
将此值设置为 -1 将把高度重置为其隐式最小高度。
另请参阅 preferredHeight 和maximumHeight 。
Layout.minimumWidth : real [attached]
该属性指定布局中某个项目的最小宽度。默认值为该项目的隐式最小宽度。
如果该项目本身是一个布局,则其隐式最小宽度即为该布局在不导致任何子项宽度缩小至其最小宽度以下的条件下所能达到的最小宽度。对于其他任何项目,其隐式最小宽度均为0 。
将此值设置为 -1 将把宽度重置为其隐式最小宽度。
另请参阅 preferredWidth 和maximumWidth 。
Layout.preferredHeight : real [attached]
该属性存储布局中某个项的首选高度。如果首选高度为-1 ,则该值将被忽略,布局将改用implicitHeight 。默认值为-1 。
另请参阅 minimumHeight 和maximumHeight 。
Layout.preferredWidth : real [attached]
该属性存储布局中某项的优先宽度。如果优先宽度为-1 ,则会被忽略,布局将改用implicitWidth 。默认值为-1 。
另请参阅 minimumWidth 和maximumWidth 。
Layout.rightMargin : real [attached, since QtQuick.Layouts 1.2]
指定项目外部的右边距。如果未设置该值,则将使用margins 中的值。
该属性在 QtQuick.Layouts 1.2 中引入。
另请参阅 margins 。
Layout.row : int [attached]
此属性允许您指定项目在GridLayout 中的行位置。
如果既未设置 `column ` 属性,也未设置此属性,则由布局决定为该项分配哪个单元格。
默认值为 `0`。
Layout.rowSpan : int [attached]
此属性允许您指定GridLayout 中某项的行跨度。
默认值为1 。
另请参阅 columnSpan 和row 。
Layout.topMargin : real [attached, since QtQuick.Layouts 1.2]
指定项目外侧的顶部边距。如果未设置该值,则将使用margins 中的值。
该属性在 QtQuick.Layouts 1.2 中引入。
另请参阅 margins 。
Layout.useDefaultSizePolicy : enumeration [attached, since 6.8]
此属性允许用户在组件级别配置布局大小策略。
默认值将通过查询应用程序属性Qt::AA_QtQuickUseDefaultSizePolicy 继承。您可以使用此属性覆盖该值。
| 常量 | 描述 |
|---|---|
Layout.SizePolicyImplicit | 布局中的项目使用隐式或内置大小策略 |
Layout.SizePolicyExplicit | 布局中的项目不使用隐式大小策略。 |
该属性自 Qt 6.8 起引入。
Layout.verticalStretchFactor : int [attached, since Qt 6.5]
此属性可用于指定垂直拉伸系数。 默认情况下,在线性布局中排列的两个相同项目将具有相同的大小,但如果第一个项目的拉伸因子为 1,而第二个项目的拉伸因子为 2,则第一个项目将力求占据可用空间的 1/3,而第二个项目将力求占据可用空间的 2/3。 请注意,它们是否会精确占据可用空间的 1/3 和 2/3,取决于它们的大小提示。这是因为,例如当垂直布局以最小高度显示时,其所有子项也会相应地采用最小高度。
同样地,当垂直布局处于首选高度时,所有子项也将处于首选高度;当垂直布局处于最大高度时,所有子项也将处于最大高度。无论各个子项的伸展因子具体为何,此策略均会生效。因此,伸展因子仅决定子项在 preferredHeight 到maximumHeight 范围内的增长速率。
默认值为-1 ,这意味着不应用任何拉伸因子。
注意:这 要求将Layout::fillHeight 设置为 true
该属性自 Qt 6.5 起引入。
另请参阅 horizontalStretchFactor 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.