布局类(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不继承。
标签:11,返回,const,int,布局,virtual,官翻,QLayoutItem 来源: https://blog.csdn.net/hitzsf/article/details/113534477