QSizePolicy

一、描述

QSizePolicy 类是布局属性,描述了水平和垂直大小调整策略。

QWidget 的大小策略是其调整大小意愿的表达,并影响布局引擎如何处理小部件。每个小部件都返回一个 QSizePolicy,描述其布局时首选的水平和垂直大小调整策略。

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

二、类型成员

1、QSizePolicy::ControlType:设置与应用大小策略的小部件关联的控件类型,一些样式(特别是QMacStyle)使用它在小部件之间插入适当的间距。

  • QSizePolicy::DefaultType:默认类型,没有指定时。
  • QSizePolicy::ButtonBoxQDialogButtonBox 实例。
  • QSizePolicy::CheckBoxQCheckBox 实例。
  • QSizePolicy::ComboBoxQComboBox 实例。
  • QSizePolicy::FrameQFrame 实例。
  • QSizePolicy::GroupBoxQGroupBox 实例。
  • QSizePolicy::LabelQLabel 实例。
  • QSizePolicy::Line:具有 QFrame::HLineQFrame::VLineQFrame 实例。
  • QSizePolicy::LineEditQLineEdit 实例。
  • QSizePolicy::PushButtonQPushButton 实例。
  • QSizePolicy::RadioButtonQRadioButton 实例。
  • QSizePolicy::SliderQAbstractSlider 实例。
  • QSizePolicy::SpinBoxQAbstractSpinBox 实例。
  • QSizePolicy::TabWidgetQTabWidget 实例。
  • QSizePolicy::ToolButtonQToolButton 实例。

2、QSizePolicy::Policy。策略。描述了构造QSizePolicy时使用的各种尺寸调整类型。

  • Fixed:size固定为QWidget::sizeHint()。
  • Minimum:size不能小于 sizeHint() 提供的大小。
  • Maximum:size不能大于 sizeHint() 提供的大小。
  • Preferred:最佳size为 sizeHint()。
  • ExpandingsizeHint()为推荐的size,但尽可能地获得更大的空间。
  • MinimumExpandingsizeHint()是最小的size,但尽可能地获得更大的空间。
  • IgnoredsizeHint()被忽略。小部件将获得尽可能多的空间。

3、QSizePolicy::PolicyFlag。策略标志,这些标志组成了策略值。

  • GrowFlag:如果需要,小部件可以扩展到超出其sizeHint()。
  • ExpandFlag:小部件应该获得尽可能多的空间。
  • ShrinkFlag:如果有必要,小部件可以缩小到其sizeHint()以下。
  • IgnoreFlag:小部件的sizeHint()被忽略。小部件将获得尽可能多的空间。

三、成员函数

1、Qt::Orientations expandingDirections()

返回值表示是否可以使用比QWidget::sizeHint()指示的更多的空间。

  • 返回Qt::HorizontalQt::Vertical值表示小部件可以水平或垂直拓展。
  • 返回Qt::Horizontal | Qt::Vertical表示它可以在两个维度上增长。

2、bool hasHeightForWidth()

小部件的首选高度是否取决于其宽度。

3、bool hasWidthForHeight()

小部件的宽度是否取决于其高度。

4、QSizePolicy::Policy horizontalPolicy() / verticalPolicy()

返回水平/垂直策略。

5、int horizontalStretch() / verticalStretch()

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

6、bool retainSizeWhenHidden()

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

      void setRetainSizeWhenHidden(bool retainSize)

设置布局在隐藏时是否应保留小部件的大小。

7、void setControlType(QSizePolicy::ControlType type)

设置应用小部件的控件类型。

8、void setHeightForWidth(bool dependent)setWidthForHeight(bool dependent)

设置小部件的首选高度/宽度是否取决于其宽度/高度。

9、void setHorizontalPolicy setVerticalPolicy(QSizePolicy::Policy policy)

设置水平/垂直方向策略。

10、void setHorizontalStretch setVerticalStretch(int stretchFactor)

设置大小策略的水平拉伸因子。必须在[0~255]范围内。

比如当两个窗口小部件在水平布局中彼此相邻时,将左侧窗口小部件的水平拉伸系数设置为2,将右侧窗口小部件的系数设置为1,将确保左侧窗口小部件的大小始终是右侧窗口小部件的两倍。

11、void transpose()

交换水平/垂直大小策略。

      QSizePolicy transposed()

返回交换了水平和垂直策略和拉伸的大小策略的对象。

12、QVariant operator QVariant()

返回存储此QSizePolicy的QVariant

    QSizePolicy sp = this->sizePolicy();
    qDebug()<<static_cast<QVariant>(sp);

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值