返回介绍

QDockArea类

发布于 2019-10-04 14:59:33 字数 6757 浏览 1119 评论 0 收藏 0

QDockArea类管理和布局QDockWindow。 详情请见……

#include <qdockarea.h>

继承了QWidget。

所有成员函数的列表。

公有成员

  • enum HandlePosition { Normal, Reverse }
  • QDockArea ( Orientationo, HandlePositionh = Normal, QWidget*parent = 0, constchar*name = 0 )
  • ~QDockArea ()
  • void moveDockWindow ( QDockWindow*w, constQPoint&p, constQRect&r, boolswap )
  • void removeDockWindow ( QDockWindow*w, boolmakeFloating, boolswap, boolfixNewLines = TRUE )
  • void moveDockWindow ( QDockWindow*w, intindex = -1 )
  • bool hasDockWindow ( QDockWindow*w, int*index = 0 )
  • Orientation orientation () const
  • HandlePosition handlePosition () const
  • bool isEmpty () const
  • int count () const
  • QPtrList<QDockWindow> dockWindowList () const
  • bool isDockWindowAccepted ( QDockWindow*dw )
  • void setAcceptDockWindow ( QDockWindow*dw, boolaccept )

公有槽

  • void lineUp ( boolkeepNewLines )

属性

  • int count- 锚接区域中的锚接窗口的数量(只读)
  • bool empty- 锚接区域是否为空(只读)
  • HandlePosition handlePosition- 锚接窗口的分隔句柄被放在锚接区域的哪里(只读)
  • Orientation orientation- 锚接区域的方向(只读)

相关函数

  • QTextStream & operator<< ( QTextStream&ts, constQDockArea&dockArea )
  • QTextStream & operator>> ( QTextStream&ts, QDockArea&dockArea )

详细描述

QDockArea类管理和布局QDockWindow。

QDockArea是一个管理QDockWindow的列表,把它们布局在它的区域中的一个容器。在和QDockWindow的合作当中,它负责QDockWindow的锚接和取消锚接并且在锚接区域中移动它们。QDockArea也处理QDockWindow的自动换行来填充尽可能紧密的可用空间。QDockArea可以包含QToolBar,因为QToolBar是QDockWindow的一个子类。

QMainWindow包含四个你可以使用你的QToolBar和QDockWindow的QDockArea,所以在绝大多数情况下,你不需要直接使用QDockArea类。尽管QMainWindow包含了它自己的锚接区域,但是对于添加新的QDockArea它是不方便的。如果你需要创建你自己的锚接区域,我们建议你创建QWidget的一个子类并且把你的QDockArea添加到你的子类中。

QMainWindow's QDockAreas

。QDockAre使用行的概念。一行就是可以并排地包含锚接窗口的一个水平区域。一个锚接区域可以拥有比一行更多的空间。当锚接窗口被锚接到一个锚接区域中时,它们通常被添加到这个空间中最上面一行的最右侧(除了是由用户手工放置的)。当用户移动锚接窗口时,它们可以离开空白行或者放入非空行的空隙中。使用lineUp()函数,锚接窗口可以被按行排序来使浪费的空间最小化。

QDockArea类维护着所有它的子锚接窗口的位置列表。被添加到锚接区域的锚接窗口是从0开始的。锚接窗口被按从左到右的顺序布局,并且对于多行的锚接窗口,是从上到下。如果一个锚接窗口被浮动起来,它还保持着它的位置,因为如果用户双击它的标题,它会返回它原来的位置。锚接窗口的位置可以被hasDockWindow()决定。位置可以被moveDockWindow()改变。

使用QDockWindow::dock()和QDockWindow::undock()可以分别锚接一个锚接窗口或者取消锚接一个锚接窗口。如果你想控制哪个锚接窗口可以锚接在一个锚接区域中请使用setAcceptDockWindow()。为了查看一个锚接区域是否有一个特定锚接窗口请使用hasDockWindow(),为了查看一个锚接区域中包含多少个锚接窗口请使用count()。

流操作符可以把锚接区域中的锚接窗口的位置写到QTextStream中。这些位置也可以在这之后被读出来恢复被保存的位置。

把位置存储到QTextStream中。

    ts << *myDockArea;
  

从QTextStream中恢复位置:

    ts >> *myDockArea;
  

也可以参考主窗口和相关类。


成员类型文档

QDockArea::HandlePosition

锚接窗口有两种句柄,锚接窗口句柄用于拖动锚接窗口,并且分隔句柄用于使用一个分隔符和其它锚接窗口的关系中来重新定义锚接窗口的大小。

这个枚举变量指定了锚接窗口分割句柄被放置到锚接区域的哪里。

  • QDockArea::Normal - 锚接窗口的分割句柄被放置到右面或者下面。
  • QDockArea::Reverse - 锚接窗口的分割句柄被放置到左面或者上面。


成员函数文档

QDockArea::QDockArea ( Orientationo, HandlePositionh = Normal, QWidget*parent = 0, constchar*name = 0 )

构造一个方向为o、句柄位置为h、父对象为parent并且名称为name的QDockArea。

QDockArea::~QDockArea ()

销毁这个锚接区域和所有锚接到这个锚接区域的锚接窗口。

不会影响任何正在浮动的锚接窗口或者在其它锚接区域的锚接窗口,尽管它们最开始出现在这个锚接窗口中。正在浮动的锚接窗口是有效地顶级窗口并且不再是这个锚接区域的子窗口。当一个正在浮动的锚接窗口被锚接(拖动进入一个锚接区域),它的父对象变为这个锚接区域。

int QDockArea::count () const

返回锚接区域中锚接窗口的数量。详细情况请参考“count”属性。

QPtrList<QDockWindow> QDockArea::dockWindowList () const

返回锚接区域中锚接窗口的列表。

HandlePosition QDockArea::handlePosition () const

返回锚接窗口的分割处理器被放置到锚接区域的哪里。详细情况请参考“handlePosition”属性。

bool QDockArea::hasDockWindow ( QDockWindow*w, int*index = 0 )

如果锚接区域包含锚接窗口w,返回真,否则返回假。如果一个非空指针被作为index传递,它将被设置为如下这样:如果锚接区域包含锚接窗口,index被设置为w的位置,否则index被设置为-1。

bool QDockArea::isDockWindowAccepted ( QDockWindow*dw )

如果锚接窗口dw可以被锚接入这个锚接区域中,返回真,否则返回家爱。

也可以参考setAcceptDockWindow()。

bool QDockArea::isEmpty () const

如果锚接区域为空,返回真,否则返回假。详细情况请参考“empty”属性。

void QDockArea::lineUp ( boolkeepNewLines ) [槽]

把在这个锚接区域中的锚接窗口排列起来使浪费的空间最小化。如果keepNewLines为真,只有行中的空间被清空。如果keepNewLines为假,行数可能被改变。

void QDockArea::moveDockWindow ( QDockWindow*w, intindex = -1 )

把QDockWindow w移入锚接区域中。如果w没有被锚接到这个区域中,w首先被锚接。如果index为-1或者大于被锚接窗口的数量,w被添加到末尾,否则它被插入到index位置。

void QDockArea::moveDockWindow ( QDockWindow*w, constQPoint&p, constQRect&r, boolswap )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

把锚接窗口w移入新位置为p(在全局屏幕坐标中)的锚接区域中,r是锚接窗口的被建议矩形并且swap指定锚接窗口的方向是否需要被改变。

这个函数被QDockWindow内部使用。你不应该需要自己调用它。

Orientation QDockArea::orientation () const

返回锚接区域的方向。详细情况请参考“orientation”属性。

void QDockArea::removeDockWindow ( QDockWindow*w, boolmakeFloating, boolswap, boolfixNewLines = TRUE )

从锚接区域中移除锚接窗口w。如果makeFloating为真,w就会被浮动,并且如果swap为真,w的方向被切换。如果fixNewLines为真(默认),区域中的新行将被固定。

你应该永远不需要自己调用这个函数。使用QDockWindow::dock()和QDockWindow::undock()来替代它。

void QDockArea::setAcceptDockWindow ( QDockWindow*dw, boolaccept )

如果accept为真,锚接窗口dw可以被锚接入锚接区域。如果accept为假,锚接窗口dw不可以被锚接入锚接区域。

也可以参考isDockWindowAccepted()。


属性文档

int count

这个属性保存的是锚接区域中的锚接窗口的数量。

通过count()来获得属性值。

bool empty

这个属性保存的是锚接区域是否为空。

通过isEmpty()来获得属性值。

HandlePosition handlePosition

这个属性保存的是锚接窗口的分隔句柄被放在锚接区域的哪里。

默认位置是Normal。

通过handlePosition()来获得属性值。

Orientation orientation

这个属性保存的是锚接区域的方向。

这个没有默认值,方向在构造函数中被指定。

通过orientation()来获得属性值。


相关函数

QTextStream& operator<< ( QTextStream&ts, constQDockArea&dockArea )

把锚接区域dockArea中的锚接窗口的布局写入文本流ts

也可以参考operator>>()。

QTextStream& operator>> ( QTextStream&ts, QDockArea&dockArea )

从文本流ts中读取锚接区域dockArea的锚接窗口的布局描述并且恢复它。这隔布局描述必须已经由以前的operator<<()函数已经写入过了。

也可以参考operator<<()。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文