返回介绍

QHeader类

发布于 2019-10-04 15:00:36 字数 17280 浏览 995 评论 0 收藏 0

QHeader类为诸如表格和列表(listview)等提供标题行或者列。 详见……

#include <qheader.h>

继承了QWidget。

所有成员函数的列表。

公共成员

  • QHeader ( QWidget*parent = 0, constchar*name = 0 )
  • QHeader ( intn, QWidget*parent = 0, constchar*name = 0 )
  • ~QHeader ()
  • int addLabel ( constQString&s, intsize = -1 )
  • int addLabel ( constQIconSet&iconset, constQString&s, intsize = -1 )
  • void removeLabel ( intsection )
  • virtual void setLabel ( intsection, constQString&s, intsize = -1 )
  • virtual void setLabel ( intsection, constQIconSet&iconset, constQString&s, intsize = -1 )
  • QString label ( intsection ) const
  • QIconSet * iconSet ( intsection ) const
  • virtual void setOrientation ( Orientation )
  • Orientation orientation () const
  • virtual void setTracking ( boolenable )
  • bool tracking () const
  • virtual void setClickEnabled ( boolenable, intsection = -1 )
  • virtual void setResizeEnabled ( boolenable, intsection = -1 )
  • virtual void setMovingEnabled ( bool )
  • virtual void setStretchEnabled ( boolb, intsection )
  • void setStretchEnabled ( boolb )
  • bool isClickEnabled ( intsection = -1 ) const
  • bool isResizeEnabled ( intsection = -1 ) const
  • bool isMovingEnabled () const
  • bool isStretchEnabled () const
  • bool isStretchEnabled ( intsection ) const
  • void resizeSection ( intsection, ints )
  • int sectionSize ( intsection ) const
  • int sectionPos ( intsection ) const
  • int sectionAt ( intpos ) const
  • int count () const
  • int headerWidth () const
  • QRect sectionRect ( intsection ) const
  • virtual void setCellSize ( intsection, ints ) (obsolete)
  • int cellSize ( inti ) const (obsolete)
  • int cellPos ( inti ) const (obsolete)
  • int cellAt ( intpos ) const (obsolete)
  • int offset () const
  • int mapToSection ( intindex ) const
  • int mapToIndex ( intsection ) const
  • int mapToLogical ( inta ) const (obsolete)
  • int mapToActual ( intl ) const (obsolete)
  • void moveSection ( intsection, inttoIndex )
  • virtual void moveCell ( intfromIdx, inttoIdx ) (obsolete)
  • void setSortIndicator ( intsection, boolincreasing = TRUE )
  • void adjustHeaderSize ()

公共槽

  • virtual void setOffset ( intpos )

信号

  • void clicked ( intsection )
  • void pressed ( intsection )
  • void released ( intsection )
  • void sizeChange ( intsection, intoldSize, intnewSize )
  • void indexChange ( intsection, intfromIndex, inttoIndex )
  • void sectionClicked ( intindex ) (obsolete)
  • void moved ( intfromIndex, inttoIndex ) (obsolete)

属性

  • int count- 标题中的节(section)数(read only)
  • bool moving- 标题节是否可以被移动
  • int offset- 标题最左(或者最上)可见的象素
  • Orientation orientation- 标题的物理朝向
  • bool stretching- 标题的节是否总是占据标题的全部宽度(或者高度)
  • bool tracking- 信号sizeChange()是否被连续发送

保护成员

  • QRect sRect ( intindex )
  • virtual void paintSection ( QPainter*p, intindex, constQRect&fr )
  • virtual void paintSectionLabel ( QPainter*p, intindex, constQRect&fr )

详细描述

QHeader类为诸如表格和列表(listview)等提供标题行或者列。

本类提供一个标题,例如一个垂直标题显示行标签,或者一个水平标题显示列标签。它可以用于诸如QTable和QListView中。

标题由一个或者很多节组成,每个节都可以显示一个文本标签和一个图标(iconset)。使用setSortIndicator(),还可以显示排序指示器(箭头)。

使用addLabel()添加节,使用removeLabel()删去节。标签和图标在addLabel()中设置,以后可以用setLabel()来修改。使用count()以得到标题中节的数目。

标题的朝向用setOrientation()来设置。如果setStretchEnabled()为TRUE,节将会占据标题的全部宽度(对于垂直标题则是全部高度)。如果setResizeEnabled()为TRUE,用户可以手动调整节的大小。调用adjustHeaderSize(),可以调整节的大小,占据全部宽度(或者高度)。

可以使用moveSection()以移动节。如果setMovingEnabled()为TRUE,用户可以把节拖来拖去。如果某个节被移动,节被添加(使用addLabel())时的索引位置就可能与移动之后不同了。实际上你不必担心这一点,因为QHeader的API是使用节的编号(section number)的术语来工作的,某特定的节被移到哪里并没有关系。

如果你想得到一个节的当前索引位置,可以以节编号为参数调用mapToIndex()。(这个节编号是由生成该节的addLabel()调用所返回的数值。)如果你想得到一个具体索引位置的节的编号,可以以索引位置为参数调用mapToSection()。

下面是阐明mapToSection()和mapToIndex()的例子:

索引位置
0123
原来的节次序
Sect 0Sect 1Sect 2Sect 3
用户移动一个节之后的次序
Sect 0Sect 2Sect 3Sect 1

kmapToSection(k)mapToIndex(k)
000
123
231
312

在上面的例子中,如果我们要找出哪个节在索引位置3,可以调用mapToSection(3),就会得到节编号为1,因为节1被移动到了那里。类似地,如果我们要知道节2占据了哪个索引位置,调用mapToIndex(2),就会得到索引为1。

QHeader提供了clicked()、pressed()和released()信号。如果用户改变了某个节的大小,sizeChange()信号被发送。如果你希望sizeChange()信号在用户调整大小时持续被发送(而不是只在调整后),使用setTracking()。如果用户移动了节,indexChange()信号被发送。

也参见QListView、QTable和高级部件。


成员函数文档

QHeader::QHeader ( QWidget*parent = 0, constchar*name = 0 )

构造一个水平标题,命名为name,父部件为parent

QHeader::QHeader ( intn, QWidget*parent = 0, constchar*name = 0 )

构造一个水平标题,命名为name,由n节组成,父部件为parent

QHeader::~QHeader ()

销毁标题及其节。

int QHeader::addLabel ( constQString&s, intsize = -1 )

增加一个新节,标签文本为s。返回节所加在的索引位置(对于水平标题是在右边,对于垂直标题是在下边)。节的宽度设置为size。若size < 0,则根据文本s来选择合适的大小。

int QHeader::addLabel ( constQIconSet&iconset, constQString&s, intsize = -1 )

这是重载的成员函数,为便利而提供。其行为本质上类似上一个函数。

增加一个带有图标iconset和标签文本s的新节。返回节所加在的索引位置(对于水平标题是在右边,对于垂直标题是在下边)。节的宽度设置为size。若size < 0,则根据文本来选择合适的大小。

void QHeader::adjustHeaderSize ()

调整节的大小,以尽可能全部占据标题的大小。只有isStretchEnabled()为TRUE的那些节会被调整大小。

int QHeader::cellAt ( intpos ) const

本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。

使用sectionAt()来代替本函数。

Returns the index at which the section is displayed, which contains pos in widget coordinates, or -1 if pos is outside the header sections.

int QHeader::cellPos ( inti ) const

本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。

使用sectionPos()来代替本函数。

Returns the position in pixels of the section that is displayed at the index i。 The position is measured from the start of the header.

int QHeader::cellSize ( inti ) const

本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。

使用sectionSize()来代替本函数。

Returns the size in pixels of the section that is displayed at the index i

void QHeader::clicked ( intsection ) [信号]

如果isClickEnabled()为TRUE,当用户点击节section时,本信号被发送。

也参见pressed()和released()。

int QHeader::count () const

返回标题中的节的数目。详见"count"属性。

int QHeader::headerWidth () const

返回所有标题列的总宽度。

QIconSet* QHeader::iconSet ( intsection ) const

返回节section的图标。如果该节不存在,返回0。

void QHeader::indexChange ( intsection, intfromIndex, inttoIndex ) [信号]

当用户把节section从索引位置fromIndex移到索引位置toIndex时,本信号被发送。

bool QHeader::isClickEnabled ( intsection = -1 ) const

如果节section为可点击,返回TRUE;否则返回FALSE。

section超出范围时(为负或者大于count() - 1),如果所有节都是可点击,返回TRUE,否则返回FALSE。

也参见setClickEnabled()。

bool QHeader::isMovingEnabled () const

如果标题节可以被移动,返回TRUE;否则返回FALSE。详见"moving"属性。

bool QHeader::isResizeEnabled ( intsection = -1 ) const

如果节section为可调整大小,返回TRUE;否则返回FALSE。

如果section为-1,本函数应用于所有节,也就是说,如果所有节都是可调整大小的,返回TRUE;否则返回FALSE。

也参见setResizeEnabled()。

bool QHeader::isStretchEnabled () const

如果标题节总是占据标题的全部宽度(或者高度),返回TRUE;否则返回FALSE。 详见"stretching"属性。

bool QHeader::isStretchEnabled ( intsection ) const

如果节section可以调整大小以占据标题的全部宽度(或者高度),返回TRUE;否则返回FALSE。如果至少一个节是可伸缩的,节就总是占据标题的全部宽度。

也参见setStretchEnabled()。

QString QHeader::label ( intsection ) const

返回节section的文本。如果该节不存在,返回空字符串。

int QHeader::mapToActual ( intl ) const

本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。

使用mapToIndex()来代替本函数。

Translates from logical index l to actual index (index at which the section l is displayed) . Returns -1 if l is outside the legal range.

也参见mapToLogical()。

int QHeader::mapToIndex ( intsection ) const

返回节section当前被显示的索引。

更多解释参见mapTo例子。

int QHeader::mapToLogical ( inta ) const

本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。

使用mapToSection()来代替本函数。

Translates from actual index a (index at which the section is displayed) to logical index of the section. Returns -1 if a is outside the legal range.

也参见mapToActual()。

int QHeader::mapToSection ( intindex ) const

返回显示于索引位置index的节。

更多解释参见mapTo例子。

void QHeader::moveCell ( intfromIdx, inttoIdx ) [虚]

本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。

使用moveSection()来代替本函数。

Moves the section that is currently displayed at index fromIdx to index toIdx

void QHeader::moveSection ( intsection, inttoIndex )

把节section移到索引位置toIndex

void QHeader::moved ( intfromIndex, inttoIndex ) [信号]

本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。

使用indexChange()来代替本函数。

This signal is emitted when the user has moved the section which is displayed at the index fromIndex to the index toIndex

int QHeader::offset () const

返回标题的最左(或者最上)的可见象素。 详见"offset"属性。

Orientation QHeader::orientation () const

返回标题的物理朝向。 详见"orientation"属性。

void QHeader::paintSection ( QPainter*p, intindex, constQRect&fr ) [虚 保护]

在矩形fr内(使用部件坐标),使用画具p绘制在位置index的节。

调用了paintSectionLabel()。

void QHeader::paintSectionLabel ( QPainter*p, intindex, constQRect&fr ) [虚 保护]

在矩形fr内(使用部件坐标),使用画具p绘制在位置index的节的标签。

被paintSection()所调用。

void QHeader::pressed ( intsection ) [信号]

当用户按下节section时,本信号被发送。

也参见released()。

void QHeader::released ( intsection ) [信号]

当用户释放节section时,本信号被发送。

也参见pressed()。

void QHeader::removeLabel ( intsection )

删去节section。如果该节不存在,什么也不做。

void QHeader::resizeSection ( intsection, ints )

调整节section的大小为s象素宽(或者高)。

QRect QHeader::sRect ( intindex ) [protected]

返回被索引为index的节所覆盖的矩形。

int QHeader::sectionAt ( intpos ) const

返回包括以象素给出的位置pos的节索引。

也参见offset。

void QHeader::sectionClicked ( intindex ) [信号]

本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。

使用clicked()来代替本函数。

This signal is emitted when a part of the header is clicked. index is the index at which the section is displayed.

In a list view this signal would typically be connected to a slot that sorts the specified column (or row)。

int QHeader::sectionPos ( intsection ) const

返回节section开始的位置(以象素形式)。

也参见offset。

QRect QHeader::sectionRect ( intsection ) const

返回被节section所覆盖的矩形。

int QHeader::sectionSize ( intsection ) const

以象素形式返回节section的宽度(或者高度)。

void QHeader::setCellSize ( intsection, ints ) [虚]

本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。

使用resizeSection()来代替本函数。

Sets the size of the section section to s pixels.

警告: does not repaint or send out signals。

void QHeader::setClickEnabled ( boolenable, intsection = -1 ) [虚]

如果enable为TRUE,点击节section就会导致clicked()信号被发送;否则节将忽略点击。

如果section为-1(缺省),那么enable值对所有存在的节都设置,而且也应用到增加的新节上。

也参见moving和setResizeEnabled()。

void QHeader::setLabel ( intsection, constQString&s, intsize = -1 ) [虚]

设置节section的文本为s。如果size >= 0,节的宽度设置为size;否则不变。该节已经设置的图标保持不变。

如果该节不存在,什么也不做。

例子:chart/setdataform.cpp和table/small-table-demo/main.cpp。

void QHeader::setLabel ( intsection, constQIconSet&iconset, constQString&s, intsize = -1 ) [虚]

这是重载的成员函数,为便利而提供。其行为本质上类似上一个函数。

把节section的图标设置为iconset,文本设置为s。如果size >= 0,节的宽度设置为size;否则不变。

如果该节不存在,什么也不做。

void QHeader::setMovingEnabled ( bool ) [虚]

设置标题的节是否可以移动。详见"moving"属性。

void QHeader::setOffset ( intpos ) [虚 槽]

设置标题的最左(或者最上)的可见象素为pos。详见"offset"属性。

void QHeader::setOrientation ( Orientation ) [虚]

设置标题的物理朝向。详见"orientation"属性。

void QHeader::setResizeEnabled ( boolenable, intsection = -1 ) [虚]

如果enable为TRUE,用户可以调整节section的大小;否则该节不能被手动调整大小。

如果section为负(缺省),那么enable值对所有存在的节都设置,而且也应用到增加的新节上。 例子:

    // Allow resizing of all current and future sections
    header->setResizeEnabled(TRUE);
    // Disable resizing of section 3, (the fourth section added)
    header->setResizeEnabled(FALSE, 3);
    

如果用户调整了一个节的大小,sizeChange()信号被发送。

也参见moving、setClickEnabled()和tracking。

void QHeader::setSortIndicator ( intsection, boolincreasing = TRUE )

因为QHeader经常与表格或者列表部件一起使用,它可以显示排序的次序。这可以通过在节的右边显示一个箭头来实现。

如果increasing为TRUE(缺省),箭头指向下;否则向上。

同一时间只能有一个节显示排序指示。如果你不想让任何节显示排序指示器,传入参数section为-1。

void QHeader::setStretchEnabled ( boolb, intsection ) [虚]

如果b为TRUE,节section的大小将会随标题的大小调整而调整,以使节占据标题的全部宽度(对于垂直标题则是高度);否则,节section被设置为不可伸缩,也不会随标题的调整大小而调整大小。

section为-1时,如果b为TRUE,所有节的大小相等地随标题的大小调整而调整,以使节占据标题的全部宽度(对于垂直标题则是高度);否则,所有节都被设置为不可伸缩,也不会随标题的调整大小而调整大小。

也参见adjustHeaderSize()。

void QHeader::setStretchEnabled ( boolb )

设置标题的节是否总是占据标题的全部宽度(或者高度)为b。 详见"stretching"属性。

void QHeader::setTracking ( boolenable ) [虚]

设置sizeChange()信号是否持续被发送为enable。 详见"tracking"属性。

void QHeader::sizeChange ( intsection, intoldSize, intnewSize ) [信号]

当用户把节section的大小从oldSize改为newSize时,本信号被发送。典型地,本信号连接到一个槽上,这个槽重绘包括该标题的表格或者列表。

bool QHeader::tracking () const

如果sizeChange()信号是持续被发送的,返回TRUE;否则返回FALSE。 详见"tracking"属性。


属性文档

int count

本属性决定标题中的节的数目。

用count()来得到本属性值。

bool moving

得到本属性值标题的节是否可以被移动。

如果本属性为TRUE,用户可以移动节。如果用户移动某个节,indexChange()信号被发送。

也参见setClickEnabled()和setResizeEnabled()。

用setMovingEnabled()设置本属性值,用isMovingEnabled()得到本属性值。

int offset

本属性决定标题的最左(或者最上)的可见象素。

设置本属性将滚动标题以使得offset成为最左(或者最上,对于垂直标题)的可见象素。

用setOffset()设置本属性值,用offset()得到本属性值。

Orientation orientation

本属性决定标题的物理朝向。

朝向要么是QHeader::Vertical,要么就是QHeader::Horizontal(缺省)。

如果你没有提供大小参数,就要在添加标签之前调用setOrientation(),否则大小会不正确。

用setOrientation()设置本属性值,用orientation()得到本属性值。

bool stretching

本属性决定标题的节是否总是占据标题的全部宽度(或者高度)。

用setStretchEnabled()设置本属性值,用isStretchEnabled()得到本属性值。

bool tracking

本属性决定sizeChange()信号是否持续地被发送。

如果tracking为打开,当鼠标移动(也就是标题被调整大小)时,sizeChange()信号持续地被发送;否则,只有在大小调整结束鼠标按键释放时,才发送信号。

Tracking缺省为FALSE。

用setTracking()设置本属性值,用tracking()得到本属性值。

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

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

发布评论

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