布局类(11):【类】QLayoutItem [官翻]

QLayoutItem 类

QStackedWidget类提供了一个小部件堆栈,其中一次只能看到一个小部件。

Header:#include < QLayoutItem >
qmake:QT += widgets
Inherits:顶级的类
Inherited By:QLayout, QSpacerItem, QWidgetItem

详细说明

这由自定义布局使用。

提供纯虚拟函数来返回有关布局的信息,包括sizeHint() 、minimumSize() 、maximumSize() 和expanding() 。

可以使用setGeometry() 和geometry() 设置和检索布局的几何图形,并使用setAlignment() 和alignment() 对齐布局。

isEmpty() 返回布局项是否为空。如果具体项是QWidget,则可以使用widget() 检索它。layout() 和spaceItem() 也是如此。

一些布局具有宽度和高度的相互依赖性。这些可以使用hasHeightForWidth() 、heightForWidth() 和minimumHeightForWidth() 来表示。有关更多解释,请参阅Qt季刊文章Trading Height For Width。

公共函数

构造和析构

  • QLayoutItem(Qt::Alignment alignment = Qt::Alignment())
  • virtual ~QLayoutItem()

对齐方式

  • void setAlignment(Qt::Alignment alignment)

特殊

  • virtual void invalidate()
  • virtual bool isEmpty() const = 0

尺寸相关

  • virtual Qt::Orientations expandingDirections() const = 0

  • virtual QRect geometry() const = 0

  • virtual void setGeometry(const QRect &r) = 0

  • virtual bool hasHeightForWidth() const

  • virtual int heightForWidth(int) const

    返回此布局项的首选高度(给定宽度),此宽度在此默认实现中不使用。

    默认实现返回-1,表示首选高度与项的宽度无关。使用函数hasHeightForWidth()通常比调用此函数并测试-1要快得多。

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

     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;
     }
    

    强烈建议使用缓存;如果没有缓存,布局将花费大量时间。

  • virtual QSize maximumSize() const = 0

  • virtual QSize minimumSize() const = 0

  • virtual int minimumHeightForWidth(int w) const

  • virtual QSize sizeHint() const = 0

  • virtual QSizePolicy::ControlTypes controlTypes() const

布局的项目

  • virtual QLayout * layout()
    如果此项是QLayout,则返回为QLayout;否则返回nullptr。此函数提供类型安全转换。

  • virtual QSpacerItem * spacerItem()

    如果此项是QSpacerItem,则返回QSpacerItem;否则返回nullptr。此函数提供类型安全转换。

  • virtual QWidget * widget() 如果此项管理QWidget,则返回该widget。否则,返回nullptr。
    注意:当函数layout() 和spaceItem() 执行强制转换时,此函数返回另一个对象:QLayout和QSpacerItem继承QLayoutItem,而QWidget不继承。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值