PySide6.QtWidgets.QSizePolicy¶
- class QSizePolicy¶
QSizePolicy类是一个描述水平和垂直调整策略的布局属性。更多…概要¶
方法¶
def
__init__()def
controlType()def
__ne__()def
__eq__()def
setControlType()def
transpose()def
transposed()def
verticalPolicy()
注意
本文档可能包含从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
忽略小部件的大小提示。小部件将获得尽可能多的空间。
另请参阅
- 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
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:
horizontal –
Policy垂直 –
Policytype –
ControlType
使用给定的
horizontal和vertical策略以及指定的控制type构造一个QSizePolicy对象。如果小部件的首选高度取决于小部件的宽度(例如,具有换行功能的
QLabel),请使用setHeightForWidth()。- controlType()¶
- Return type:
返回与此大小策略适用的小部件关联的控件类型。
另请参阅
- expandingDirections()¶
- Return type:
Orientation的组合
返回一个小部件是否可以使用比
sizeHint()函数指示的更多空间。值为Qt::Horizontal或Qt::Vertical表示小部件可以水平或垂直增长(即水平或垂直策略为
Expanding或MinimumExpanding),而Qt::Horizontal | Qt::Vertical表示它可以在两个维度上增长。- hasHeightForWidth()¶
- Return type:
布尔
如果小部件的首选高度取决于其宽度,则返回
true;否则返回false。另请参阅
- hasWidthForHeight()¶
- Return type:
布尔
如果小部件的宽度取决于其高度,则返回
true;否则返回false。另请参阅
返回大小策略的水平分量。
- horizontalStretch()¶
- Return type:
整数
返回大小策略的水平拉伸因子。
- __ne__(s)¶
- Parameters:
s –
QSizePolicy- Return type:
布尔
如果此策略与
other不同,则返回true;否则返回false。另请参阅
operator==()- __eq__(s)¶
- Parameters:
s –
QSizePolicy- 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。将水平组件设置为给定的
policy。- setHorizontalStretch(stretchFactor)¶
- Parameters:
stretchFactor – int
将大小策略的水平拉伸因子设置为给定的
stretchFactor。stretchFactor必须在[0,255]范围内。当两个小部件在水平布局中相邻时,将左侧小部件的水平拉伸因子设置为2,右侧小部件的因子设置为1,可以确保左侧小部件的大小始终是右侧小部件的两倍。
- setRetainSizeWhenHidden(retainSize)¶
- Parameters:
retainSize – 布尔值
设置当小部件隐藏时,布局是否应保留小部件的大小。如果
retainSize为true,则隐藏小部件不会改变布局。将垂直组件设置为给定的
policy。- setVerticalStretch(stretchFactor)¶
- Parameters:
stretchFactor – int
将大小策略的垂直拉伸因子设置为给定的
stretchFactor。stretchFactor必须在[0,255]范围内。当两个小部件在垂直布局中相邻时,将顶部小部件的垂直拉伸因子设置为2,底部小部件的因子设置为1,可以确保顶部小部件的大小始终是底部小部件的两倍。
- setWidthForHeight(b)¶
- Parameters:
b – 布尔值
设置标志,确定小部件的宽度是否取决于其高度,设置为
dependent。这仅支持
QGraphicsLayout的子类。不可能同时拥有高度随宽度和宽度随高度约束的布局。- transpose()¶
交换水平和垂直策略并拉伸。
另请参阅
- transposed()¶
- Return type:
返回一个大小策略对象,其中水平和垂直策略以及拉伸被交换。
另请参阅
返回大小策略的垂直组件。
- verticalStretch()¶
- Return type:
整数
返回大小策略的垂直拉伸因子。