PySide6.QtWidgets.QSizePolicy

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 对象的 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() 是最小的,并且足够。小部件可以利用额外的空间,因此它应该尽可能多地获得空间(例如水平滑块的水平方向)。

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

一个带有HLineVLineQFrame实例。

QSizePolicy.LineEdit

一个 QLineEdit 实例。

QSizePolicy.PushButton

一个 QPushButton 实例。

QSizePolicy.RadioButton

一个 QRadioButton 实例。

QSizePolicy.Slider

一个 QAbstractSlider 实例。

QSizePolicy.SpinBox

一个 QAbstractSpinBox 实例。

QSizePolicy.TabWidget

一个 QTabWidget 实例。

QSizePolicy.ToolButton

一个 QToolButton 实例。

__init__()

构造一个QSizePolicy对象,其水平和垂直策略为Fixed

可以使用setHorizontalPolicy()setVerticalPolicy()函数来更改策略。如果小部件的首选高度取决于小部件的宽度(例如,带有换行的QLabel),请使用setHeightForWidth()函数。

__init__(horizontal, vertical[, type=QSizePolicy.ControlType.DefaultType])
Parameters:

使用给定的horizontalvertical策略以及指定的控制type构造一个QSizePolicy对象。

如果小部件的首选高度取决于小部件的宽度(例如,具有换行功能的QLabel),请使用setHeightForWidth()

controlType()
Return type:

ControlType

返回与此大小策略适用的小部件关联的控件类型。

另请参阅

setControlType()

expandingDirections()
Return type:

Orientation的组合

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

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

hasHeightForWidth()
Return type:

布尔

如果小部件的首选高度取决于其宽度,则返回 true;否则返回 false

另请参阅

setHeightForWidth()

hasWidthForHeight()
Return type:

布尔

如果小部件的宽度取决于其高度,则返回 true;否则返回 false

另请参阅

setWidthForHeight()

horizontalPolicy()
Return type:

Policy

返回大小策略的水平分量。

horizontalStretch()
Return type:

整数

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

__ne__(s)
Parameters:

sQSizePolicy

Return type:

布尔

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

另请参阅

operator==()

__eq__(s)
Parameters:

sQSizePolicy

Return type:

布尔

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

另请参阅

operator!=()

retainSizeWhenHidden()
Return type:

布尔

返回布局在小部件隐藏时是否应保留其大小。默认情况下,这是false

setControlType(type)
Parameters:

类型ControlType

设置与此大小策略适用的小部件关联的控件类型为type

控件类型指定了此大小策略适用的部件类型。它被一些样式使用,特别是QMacStyle,以在部件之间插入适当的间距。例如,macOS Aqua指南规定,按钮之间应相隔12像素,而垂直堆叠的单选按钮仅需要6像素。

setHeightForWidth(b)
Parameters:

b – 布尔值

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

setHorizontalPolicy(d)
Parameters:

dPolicy

将水平组件设置为给定的 policy

setHorizontalStretch(stretchFactor)
Parameters:

stretchFactor – int

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

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

setRetainSizeWhenHidden(retainSize)
Parameters:

retainSize – 布尔值

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

另请参阅

retainSizeWhenHidden()

setVerticalPolicy(d)
Parameters:

dPolicy

将垂直组件设置为给定的 policy

setVerticalStretch(stretchFactor)
Parameters:

stretchFactor – int

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

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

setWidthForHeight(b)
Parameters:

b – 布尔值

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

这仅支持QGraphicsLayout的子类。不可能同时拥有高度随宽度和宽度随高度约束的布局。

transpose()

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

另请参阅

transposed()

transposed()
Return type:

QSizePolicy

返回一个大小策略对象,其中水平和垂直策略以及拉伸被交换。

另请参阅

transpose()

verticalPolicy()
Return type:

Policy

返回大小策略的垂直组件。

verticalStretch()
Return type:

整数

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