- class QSizePolicy#
QSizePolicy
类是一个布局属性,用于描述水平和垂直的尺寸调整策略。 更多…概览#
方法#
def
__init__()
def
controlType()
def
__ne__()
def
__eq__()
定义
transpose()
定义
transposed()
注意:
此文档可能包含自动从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
忽略小部件的大小提示。小部件会尽可能多地获取空间。
另请参阅
- 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
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 –
Policy
vertical –
Policy
type –
ControlType
使用给定参数的 horizontal 和 vertical 政策以及指定的控制类型,构造一个
QSizePolicy
对象。当小部件的首选高度依赖于宽度时(例如,带有行包装的
QLabel
),请使用setHeightForWidth()
。- __init__()
使用
Fixed
作为水平和垂直策略构造一个QSizePolicy
对象。可以使用
setHorizontalPolicy()
和setVerticalPolicy()
函数来修改策略。如果小部件的首选高度依赖于宽度(例如,带有行包装的QLabel
),请使用setHeightForWidth()
函数。- controlType()#
- 返回类型:
返回与该尺寸策略应用的小部件相关联的控制类型。
另请参阅
- expandingDirections()#
- 返回类型:
Orientation
的组合
返回小部件是否可以利用比
sizeHint()
函数指示的更多空间。值为 Qt::Horizontal 或 Qt::Vertical 表示小部件可以水平或垂直增长(即水平或垂直策略是
Expanding
或MinimumExpanding
),而 Qt::Horizontal | Qt::Vertical 表示它可以沿两个维度增长。- hasHeightForWidth()#
- 返回类型:
bool
如果小部件的 preferred height 依赖于其 width,则返回
true
;否则返回false
。另请参阅
- hasWidthForHeight()#
- 返回类型:
bool
如果小部件的 width 依赖于其 height,则返回
true
;否则返回false
。另请参阅
返回尺寸策略的水平部分。
- horizontalStretch()#
- 返回类型:
int
返回大小策略的水平拉伸因子。
- __ne__(s)#
- 参数:
s –
QSizePolicy
- 返回类型:
bool
如果此策略与
other
不同,返回true
;否则返回false
。另请参阅
operator==()
- __eq__(s)#
- 参数:
s –
QSizePolicy
- 返回类型:
bool
如果此策略等于
other
,返回true
;否则返回false
。另请参阅
operator!=()
- retainSizeWhenHidden()#
- 返回类型:
bool
返回布局在部件隐藏时应保留部件大小。默认为
false
。- setControlType(type)#
- 参数:
type –
ControlType
将此大小策略应用的部件相关联的控制类型设置为
type
。控制类型指定此大小策略应用到的部件类型。某些样式(特别是QMacStyle)使用它来在部件之间插入适当的间隔。例如,macOS Aqua指南指定按钮之间应有12像素的间隔,而垂直堆叠的单选按钮只需6像素。
- setHeightForWidth(b)#
- 参数:
b – bool
设置标志以确定部件的首选高度是否依赖于其宽度,设置为
dependent
。设置水平组件为指定的
策略
。- setHorizontalStretch(stretchFactor)#
- 参数:
stretchFactor – int
设置大小策略的水平拉伸因数为指定的
stretchFactor
。stretchFactor
必须在 [0, 255] 范围内。当两个小部件在一个水平布局中相邻时,将左侧小部件的水平拉伸因子设置为 2,并将右侧小部件的因子设置为 1,将确保左侧的小部件总是比右侧的小部件大两倍。
- setRetainSizeWhenHidden(retainSize)#
- 参数:
retainSize – bool
设置布局是否应在隐藏小部件时保留小部件的大小。如果
retainSize
为true
,则布局在隐藏小部件时不会被更改。设置垂直组件为指定的
策略
。- setVertical Stretch(stretchFactor)#
- 参数:
stretchFactor – int
将大小策略的垂直拉伸因子设置为给定的
stretchFactor
。stretchFactor
必须在范围 [0,255] 内。当两个小部件在垂直布局中彼此相邻时,设置顶部小部件的垂直拉伸因子为 2 和底部小部件的因子为 1 将确保顶部小部件始终是底部小部件的两倍大小。
- setWidthForHeight(b)#
- 参数:
b – bool
设置标志位,以确定小部件的宽度是否取决于其高度,为
dependent
。仅支持
QGraphicsLayout
的子类。不能同时具有高度换宽度和宽度换高度约束的布局。- transpose()#
交换水平和垂直策略和拉伸因子。
另请参阅
- transposed()#
- 返回类型:
返回具有交换后的水平和垂直策略和拉伸因子的尺寸策略对象。
另请参阅
返回大小策略的垂直分量。
- verticalStretch()#
- 返回类型:
int
返回大小策略的垂直拉伸因子。