QLayoutItem

一、描述

QLayoutItem 类提供了一个 QLayout 操作的抽象项。

二、函数成员

1、void setAlignment(Qt::Alignment alignment) / Qt::Alignment alignment()

设置项目的对齐方式。

除了为布局提供空白空间的 QSpacerItem 之外,所有继承 QLayoutItem 的公共 Qt 类都支持项对齐。

2、QSizePolicy::ControlTypes controlTypes()

返回布局项的控件类型。对于一个 QWidgetItem,控件类型来自widget的大小策略;对于 QLayoutItem,控件类型派生自布局的内容。

enum QSizePolicy::ControlType:此枚举在布局交互方面指定了不同类型的小部件: 

  • QSizePolicy::DefaultType:默认类型,没有指定时。
  • QSizePolicy::ButtonBox:QDialogButtonBox 实例。
  • QSizePolicy::CheckBox:QCheckBox 实例。
  • QSizePolicy::ComboBox:QComboBox 实例。
  • QSizePolicy::Frame:QFrame 实例。
  • QSizePolicy::GroupBox:QGroupBox 实例。
  • QSizePolicy::Label: QLabel 实例。
  • QSizePolicy::Line:具有 QFrame::HLine 或 QFrame::VLine 的 QFrame 实例。
  • QSizePolicy::LineEdit:QLineEdit 实例。
  • QSizePolicy::PushButton:QPushButton 实例。
  • QSizePolicy::RadioButton:QRadioButton 实例。
  • QSizePolicy::Slider:QAbstractSlider 实例。
  • QSizePolicy::SpinBox:QAbstractSpinBox 实例。
  • QSizePolicy::TabWidget:QTabWidget 实例。
  • QSizePolicy::ToolButton:QToolButton 实例。

3、【纯虚函数】Qt::Orientations expandingDirections()

返回此布局项是否可以使用比 sizeHint() 更多的空间。Qt::Vertical 或 Qt::Horizontal 的值意味着它只想在一维上增长,而 Qt::Vertical | Qt::Horizontal 意味着它想要在两个维度上增长。 

4、QRect geometry()

返回此布局项覆盖的矩形。

      【纯虚函数】void setGeometry(const QRect &r)

在子类中实现以设置项目的几何位置。 

5、bool hasHeightForWidth()

布局的首选高度是否取决于其宽度。默认实现返回 false。

6、int heightForWidth(int w)

给定宽度,返回此布局项的首选高度。

在支持高度宽度的布局管理器中重新实现此功能。一个典型的实现将如下所示:

int MyLayout::heightForWidth(int w) const
{
    if (cache_dirty || cached_width != w) 
    {
        MyLayout *that = const_cast<MyLayout *>(this);
        int h = calculateHeightForWidth(w);
        that->cached_hfw = h;
        return h;
    }
    return cached_hfw;
}

重新实现时强烈建议使用缓存,否则布局将需要指数级的时间。

7、void invalidate()

使此布局项中的任何缓存信息无效。

8、【纯虚函数】bool isEmpty()

在子类中实现以返回此项是否为空,即它是否包含任何小部件。

9、QLayout * layout()

如果此项为QLayout,则作为QLayout返回;否则返回 nullptr。

      QSpacerItem * spacerItem()

如果此项为QSpacerItem,则作为QSpacerItem返回; 否则返回 nullptr。

      QWidget * widget()

如果此项目管理QWidget,则返回该小部件。否则,返回 nullptr。

10、【纯虚函数】QSize maximumSize() / 【纯虚函数】QSize minimumSize()

在子类中实现以返回此项的最大 / 最小大小。

11、int minimumHeightForWidth(int w)

返回此小部件对于给定宽度 w 所需的最小高度。默认实现只返回 heightForWidth(w)。

12、【纯虚函数】QSize sizeHint()

在子类中实现以返回此项的首选大小。

上一篇:L2-025 分而治之 (25 分)


下一篇:025 状态模式