class QSizePolicy#

QSizePolicy 类是一个布局属性,用于描述水平和垂直的尺寸调整策略。 更多

概览#

方法#

注意:

此文档可能包含自动从C++翻译为Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告诉我们。

详细描述#

小部件的大小策略表达了其在各种方式下调整大小的意愿,并影响布局引擎如何处理该小部件。每个小部件在布局返回一个描述其布局时首选的水平和垂直调整大小策略的QSizePolicy。您可以通过更改其sizePolicy属性来更改特定小部件的此设置。

QSizePolicy 包含两个独立的 Policy 值和两个伸缩因子;一个用于描述小部件的水平尺寸策略,另一个用于描述其垂直尺寸策略。它还包含一个标志,指示其首选大小的宽度和高度是否相关。

水平和垂直策略可以在构造函数中设置,并使用 setHorizontalPolicy()setVerticalPolicy() 函数进行更改。伸缩因子可以使用 setHorizontalStretch()setVerticalStretch() 函数进行设置。指示小部件的 sizeHint() 是否依赖于宽度(例如菜单栏或自动换行的标签)的标志可以使用 setHeightForWidth() 函数进行设置。

可以使用 horizontalPolicy()verticalPolicy()horizontalStretch()verticalStretch() 函数检索当前尺寸策略和伸缩因子。或者,可以使用 transpose() 函数交换水平和垂直策略及其伸缩。 hasHeightForWidth() 函数返回当前大小的标志指示大小提示依赖状态。

使用 expandingDirections() 函数来确定关联的小部件是否可以使其空间超出 sizeHint() 函数所指示的,以及找出其可以向哪些方向扩展。

最后,QSizePolicy 类提供了比较当前策略和给定策略的运算符,以及将 QSizePolicy 存储为 QVariant 对象的运算符。

class PolicyFlag#

(继承自 enum.IntFlag)) 这些标志组合在一起以形成各种 Policy 值。

常量

描述

QSizePolicy.GrowFlag

如果需要,小部件可以超出其大小提示。

QSizePolicy.ExpandFlag

小部件应尽可能多地获取空间。

QSizePolicy.ShrinkFlag

如果需要,小部件可以缩小到其大小提示以下。

QSizePolicy.IgnoreFlag

忽略小部件的大小提示。小部件会尽可能多地获取空间。

另请参阅

Policy

class Policy#

此枚举描述了在构建 QSizePolicy 时使用的各个维度尺寸类型。

常量

描述

QSizePolicy.Fixed

sizeHint() 是唯一可接受的替代方案,因此小部件永远不会增长或缩小(例如,按钮的垂直方向)。

QSizePolicy.Minimum

sizeHint() 是最小值,并且足够。小部件可以扩展,但没有好处使其更大(例如,按钮的水平方向)。它不能小于由 sizeHint() 提供的大小。

QSizePolicy.Maximum

sizeHint() 是最大值。如果其他小部件需要空间,则小部件可以缩小任意数量的空间而不会造成损害。它不能大于由 sizeHint() 提供的大小。

QSizePolicy.Preferred

sizeHint() 是最佳选择,但小部件可以缩小并仍具有用途。小部件可以扩展,但没有好处使其大于 sizeHint()(默认的 QWidget 政策)。

QSizePolicy.Expanding

sizeHint() 是一个合理的尺寸,但小部件可以缩小并仍然有用。小部件可以利用额外空间,因此应尽可能多地获取空间(例如,水平滑块的横向方向)。

QSizePolicy.MinimumExpanding

sizeHint() 是最小值并足够。小.widget可以充分利用额外空间,因此应尽可能多地获取空间(例如,水平滑块的横向方向)。

QSizePolicy.Ignored

忽略 sizeHint()。小部件将尽可能多地获取空间。

class ControlType#

(继承 enum.Flag)此枚举指定了布局交互方面的不同小部件类型

常量

描述

QSizePolicy.DefaultType

未指定时默认的类型。

QSizePolicy.ButtonBox

一个 QDialogButtonBox 实例。

QSizePolicy.CheckBox

一个 QCheckBox 实例。

QSizePolicy.ComboBox

一个 QComboBox 实例。

QSizePolicy.Frame

一个 QFrame 实例。

QSizePolicy.GroupBox

一个 QGroupBox 实例。

QSizePolicy.Label

一个 QLabel 实例。

QSizePolicy.Line

一个 QFrame 实例,具有 HLineVLine

QSizePolicy.LineEdit

一个 QLineEdit 实例。

QSizePolicy.PushButton

一个 QPushButton 实例。

QSizePolicy.RadioButton

一个 QRadioButton 实例。

QSizePolicy.Slider

一个 QAbstractSlider 实例。

QSizePolicy.SpinBox

一个 QAbstractSpinBox 实例。

QSizePolicy.TabWidget

一个 QTabWidget 实例。

QSizePolicy.ToolButton

一个 QToolButton 实例。

__init__(horizontal, vertical[, type=QSizePolicy.ControlType.DefaultType])#
参数:

使用给定参数的 horizontal 和 vertical 政策以及指定的控制类型,构造一个 QSizePolicy 对象。

当小部件的首选高度依赖于宽度时(例如,带有行包装的 QLabel),请使用 setHeightForWidth()

__init__()

使用 Fixed 作为水平和垂直策略构造一个 QSizePolicy 对象。

可以使用 setHorizontalPolicy()setVerticalPolicy() 函数来修改策略。如果小部件的首选高度依赖于宽度(例如,带有行包装的 QLabel),请使用 setHeightForWidth() 函数。

controlType()#
返回类型:

ControlType

返回与该尺寸策略应用的小部件相关联的控制类型。

另请参阅

setControlType()

expandingDirections()#
返回类型:

Orientation 的组合

返回小部件是否可以利用比 sizeHint() 函数指示的更多空间。

值为 Qt::Horizontal 或 Qt::Vertical 表示小部件可以水平或垂直增长(即水平或垂直策略是 ExpandingMinimumExpanding ),而 Qt::Horizontal | Qt::Vertical 表示它可以沿两个维度增长。

hasHeightForWidth()#
返回类型:

bool

如果小部件的 preferred height 依赖于其 width,则返回 true;否则返回 false

另请参阅

setHeightForWidth()

hasWidthForHeight()#
返回类型:

bool

如果小部件的 width 依赖于其 height,则返回 true;否则返回 false

另请参阅

setWidthForHeight()

horizontalPolicy()#
返回类型:

Policy

返回尺寸策略的水平部分。

horizontalStretch()#
返回类型:

int

返回大小策略的水平拉伸因子。

__ne__(s)#
参数:

sQSizePolicy

返回类型:

bool

如果此策略与other不同,返回true;否则返回false

另请参阅

operator==()

__eq__(s)#
参数:

sQSizePolicy

返回类型:

bool

如果此策略等于other,返回true;否则返回false

另请参阅

operator!=()

retainSizeWhenHidden()#
返回类型:

bool

返回布局在部件隐藏时应保留部件大小。默认为false

setControlType(type)#
参数:

typeControlType

将此大小策略应用的部件相关联的控制类型设置为type

控制类型指定此大小策略应用到的部件类型。某些样式(特别是QMacStyle)使用它来在部件之间插入适当的间隔。例如,macOS Aqua指南指定按钮之间应有12像素的间隔,而垂直堆叠的单选按钮只需6像素。

setHeightForWidth(b)#
参数:

b – bool

设置标志以确定部件的首选高度是否依赖于其宽度,设置为dependent

setHorizontalPolicy(d)#
参数:

dPolicy

设置水平组件为指定的 策略

setHorizontalStretch(stretchFactor)#
参数:

stretchFactor – int

设置大小策略的水平拉伸因数为指定的 stretchFactorstretchFactor 必须在 [0, 255] 范围内。

当两个小部件在一个水平布局中相邻时,将左侧小部件的水平拉伸因子设置为 2,并将右侧小部件的因子设置为 1,将确保左侧的小部件总是比右侧的小部件大两倍。

setRetainSizeWhenHidden(retainSize)#
参数:

retainSize – bool

设置布局是否应在隐藏小部件时保留小部件的大小。如果 retainSizetrue,则布局在隐藏小部件时不会被更改。

另请参阅

retainSizeWhenHidden()

setVerticalPolicy(d)#
参数:

dPolicy

设置垂直组件为指定的 策略

setVertical Stretch(stretchFactor)#
参数:

stretchFactor – int

将大小策略的垂直拉伸因子设置为给定的 stretchFactorstretchFactor 必须在范围 [0,255] 内。

当两个小部件在垂直布局中彼此相邻时,设置顶部小部件的垂直拉伸因子为 2 和底部小部件的因子为 1 将确保顶部小部件始终是底部小部件的两倍大小。

setWidthForHeight(b)#
参数:

b – bool

设置标志位,以确定小部件的宽度是否取决于其高度,为 dependent

仅支持 QGraphicsLayout 的子类。不能同时具有高度换宽度和宽度换高度约束的布局。

transpose()#

交换水平和垂直策略和拉伸因子。

另请参阅

transposed()

transposed()#
返回类型:

QSizePolicy

返回具有交换后的水平和垂直策略和拉伸因子的尺寸策略对象。

另请参阅

transpose()

verticalPolicy()#
返回类型:

Policy

返回大小策略的垂直分量。

verticalStretch()#
返回类型:

int

返回大小策略的垂直拉伸因子。