主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QHeader类参考
QHeader类为诸如表格和列表(listview)等提供标题行或者列。 详见……
#include <qheader.h>
继承了QWidget。
公共成员
- QHeader ( QWidget * parent = 0, const char * name = 0 )
- QHeader ( int n, QWidget * parent = 0, const char * name = 0 )
- ~QHeader ()
- int addLabel ( const QString & s, int size = -1 )
- int addLabel ( const QIconSet & iconset, const QString & s, int size = -1 )
- void removeLabel ( int section )
- virtual void setLabel ( int section, const QString & s, int size = -1 )
- virtual void setLabel ( int section, const QIconSet & iconset, const QString & s, int size = -1 )
- QString label ( int section ) const
- QIconSet * iconSet ( int section ) const
- virtual void setOrientation ( Orientation )
- Orientation orientation () const
- virtual void setTracking ( bool enable )
- bool tracking () const
- virtual void setClickEnabled ( bool enable, int section = -1 )
- virtual void setResizeEnabled ( bool enable, int section = -1 )
- virtual void setMovingEnabled ( bool )
- virtual void setStretchEnabled ( bool b, int section )
- void setStretchEnabled ( bool b )
- bool isClickEnabled ( int section = -1 ) const
- bool isResizeEnabled ( int section = -1 ) const
- bool isMovingEnabled () const
- bool isStretchEnabled () const
- bool isStretchEnabled ( int section ) const
- void resizeSection ( int section, int s )
- int sectionSize ( int section ) const
- int sectionPos ( int section ) const
- int sectionAt ( int pos ) const
- int count () const
- int headerWidth () const
- QRect sectionRect ( int section ) const
- virtual void setCellSize ( int section, int s ) (obsolete)
- int cellSize ( int i ) const (obsolete)
- int cellPos ( int i ) const (obsolete)
- int cellAt ( int pos ) const (obsolete)
- int offset () const
- int mapToSection ( int index ) const
- int mapToIndex ( int section ) const
- int mapToLogical ( int a ) const (obsolete)
- int mapToActual ( int l ) const (obsolete)
- void moveSection ( int section, int toIndex )
- virtual void moveCell ( int fromIdx, int toIdx ) (obsolete)
- void setSortIndicator ( int section, bool increasing = TRUE )
- void adjustHeaderSize ()
公共槽
- virtual void setOffset ( int pos )
信号
- void clicked ( int section )
- void pressed ( int section )
- void released ( int section )
- void sizeChange ( int section, int oldSize, int newSize )
- void indexChange ( int section, int fromIndex, int toIndex )
- void sectionClicked ( int index ) (obsolete)
- void moved ( int fromIndex, int toIndex ) (obsolete)
属性
- int count - 标题中的节(section)数 (read only)
- bool moving - 标题节是否可以被移动
- int offset - 标题最左(或者最上)可见的象素
- Orientation orientation - 标题的物理朝向
- bool stretching - 标题的节是否总是占据标题的全部宽度(或者高度)
- bool tracking - 信号sizeChange()是否被连续发送
保护成员
- QRect sRect ( int index )
- virtual void paintSection ( QPainter * p, int index, const QRect & fr )
- virtual void paintSectionLabel ( QPainter * p, int index, const QRect & 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()的例子:
索引位置 | |||
---|---|---|---|
0 | 1 | 2 | 3 |
原来的节次序 | |||
Sect 0 | Sect 1 | Sect 2 | Sect 3 |
用户移动一个节之后的次序 | |||
Sect 0 | Sect 2 | Sect 3 | Sect 1 |
k | mapToSection(k) | mapToIndex(k) |
---|---|---|
0 | 0 | 0 |
1 | 2 | 3 |
2 | 3 | 1 |
3 | 1 | 2 |
在上面的例子中,如果我们要找出哪个节在索引位置3,可以调用mapToSection(3),就会得到节编号为1,因为节1被移动到了那里。类似地,如果我们要知道节2占据了哪个索引位置,调用mapToIndex(2),就会得到索引为1。
QHeader提供了clicked()、pressed()和released()信号。如果用户改变了某个节的大小,sizeChange()信号被发送。如果你希望sizeChange()信号在用户调整大小时持续被发送(而不是只在调整后),使用setTracking()。如果用户移动了节,indexChange()信号被发送。
成员函数文档
QHeader::QHeader ( QWidget * parent = 0, const char * name = 0 )
构造一个水平标题,命名为name,父部件为parent。
QHeader::QHeader ( int n, QWidget * parent = 0, const char * name = 0 )
构造一个水平标题,命名为name,由n节组成,父部件为parent。
QHeader::~QHeader ()
销毁标题及其节。int QHeader::addLabel ( const QString & s, int size = -1 )
增加一个新节,标签文本为s。返回节所加在的索引位置(对于水平标题是在右边,对于垂直标题是在下边)。节的宽度设置为size。若size < 0,则根据文本s来选择合适的大小。int QHeader::addLabel ( const QIconSet & iconset, const QString & s, int size = -1 )
这是重载的成员函数,为便利而提供。其行为本质上类似上一个函数。增加一个带有图标iconset和标签文本s的新节。返回节所加在的索引位置(对于水平标题是在右边,对于垂直标题是在下边)。节的宽度设置为size。若size < 0,则根据文本来选择合适的大小。
void QHeader::adjustHeaderSize ()
调整节的大小,以尽可能全部占据标题的大小。只有isStretchEnabled()为TRUE的那些节会被调整大小。
int QHeader::cellAt ( int pos ) 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 ( int i ) 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 ( int i ) const
本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。使用sectionSize()来代替本函数。
Returns the size in pixels of the section that is displayed at the index i。
void QHeader::clicked ( int section ) [信号]
如果isClickEnabled()为TRUE,当用户点击节section时,本信号被发送。
int QHeader::count () const
返回标题中的节的数目。详见"count"属性。
int QHeader::headerWidth () const
返回所有标题列的总宽度。QIconSet * QHeader::iconSet ( int section ) const
返回节section的图标。如果该节不存在,返回0。void QHeader::indexChange ( int section, int fromIndex, int toIndex ) [信号]
当用户把节section从索引位置fromIndex移到索引位置toIndex时,本信号被发送。
bool QHeader::isClickEnabled ( int section = -1 ) const
如果节section为可点击,返回TRUE;否则返回FALSE。在section超出范围时(为负或者大于count() - 1),如果所有节都是可点击,返回TRUE,否则返回FALSE。
也参见setClickEnabled()。
bool QHeader::isMovingEnabled () const
如果标题节可以被移动,返回TRUE;否则返回FALSE。详见"moving"属性。
bool QHeader::isResizeEnabled ( int section = -1 ) const
如果节section为可调整大小,返回TRUE;否则返回FALSE。如果section为-1,本函数应用于所有节,也就是说,如果所有节都是可调整大小的,返回TRUE;否则返回FALSE。
也参见setResizeEnabled()。
bool QHeader::isStretchEnabled () const
如果标题节总是占据标题的全部宽度(或者高度),返回TRUE;否则返回FALSE。 详见"stretching"属性。
bool QHeader::isStretchEnabled ( int section ) const
如果节section可以调整大小以占据标题的全部宽度(或者高度),返回TRUE;否则返回FALSE。如果至少一个节是可伸缩的,节就总是占据标题的全部宽度。
也参见setStretchEnabled()。
QString QHeader::label ( int section ) const
返回节section的文本。如果该节不存在,返回空字符串。int QHeader::mapToActual ( int l ) 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 ( int section ) const
返回节section当前被显示的索引。更多解释参见mapTo例子。
int QHeader::mapToLogical ( int a ) 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 ( int index ) const
返回显示于索引位置index的节。更多解释参见mapTo例子。
void QHeader::moveCell ( int fromIdx, int toIdx ) [虚]
本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。使用moveSection()来代替本函数。
Moves the section that is currently displayed at index fromIdx to index toIdx。
void QHeader::moveSection ( int section, int toIndex )
把节section移到索引位置toIndex。void QHeader::moved ( int fromIndex, int toIndex ) [信号]
本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。使用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, int index, const QRect & fr ) [虚 保护]
在矩形fr内(使用部件坐标),使用画具p绘制在位置index的节。调用了paintSectionLabel()。
void QHeader::paintSectionLabel ( QPainter * p, int index, const QRect & fr ) [虚 保护]
在矩形fr内(使用部件坐标),使用画具p绘制在位置index的节的标签。被paintSection()所调用。
void QHeader::pressed ( int section ) [信号]
当用户按下节section时,本信号被发送。
也参见released()。
void QHeader::released ( int section ) [信号]
当用户释放节section时,本信号被发送。
也参见pressed()。
void QHeader::removeLabel ( int section )
删去节section。如果该节不存在,什么也不做。void QHeader::resizeSection ( int section, int s )
调整节section的大小为s象素宽(或者高)。QRect QHeader::sRect ( int index ) [protected]
返回被索引为index的节所覆盖的矩形。int QHeader::sectionAt ( int pos ) const
返回包括以象素给出的位置pos的节索引。
也参见offset。
void QHeader::sectionClicked ( int index ) [信号]
本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。使用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 ( int section ) const
返回节section开始的位置(以象素形式)。
也参见offset。
QRect QHeader::sectionRect ( int section ) const
返回被节section所覆盖的矩形。int QHeader::sectionSize ( int section ) const
以象素形式返回节section的宽度(或者高度)。void QHeader::setCellSize ( int section, int s ) [虚]
本函数已经废弃。为支持旧代码运行而提供,强烈建议新代码中不要使用。使用resizeSection()来代替本函数。
Sets the size of the section section to s pixels.
警告: does not repaint or send out signals。
void QHeader::setClickEnabled ( bool enable, int section = -1 ) [虚]
如果enable为TRUE,点击节section就会导致clicked()信号被发送;否则节将忽略点击。如果section为-1(缺省),那么enable值对所有存在的节都设置,而且也应用到增加的新节上。
也参见moving和setResizeEnabled()。
void QHeader::setLabel ( int section, const QString & s, int size = -1 ) [虚]
设置节section的文本为s。如果size >= 0,节的宽度设置为size;否则不变。该节已经设置的图标保持不变。如果该节不存在,什么也不做。
例子:chart/setdataform.cpp和table/small-table-demo/main.cpp。
void QHeader::setLabel ( int section, const QIconSet & iconset, const QString & s, int size = -1 ) [虚]
这是重载的成员函数,为便利而提供。其行为本质上类似上一个函数。把节section的图标设置为iconset,文本设置为s。如果size >= 0,节的宽度设置为size;否则不变。
如果该节不存在,什么也不做。
void QHeader::setMovingEnabled ( bool ) [虚]
设置标题的节是否可以移动。详见"moving"属性。
void QHeader::setOffset ( int pos ) [虚 槽]
设置标题的最左(或者最上)的可见象素为pos。详见"offset"属性。
void QHeader::setOrientation ( Orientation ) [虚]
设置标题的物理朝向。详见"orientation"属性。
void QHeader::setResizeEnabled ( bool enable, int section = -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 ( int section, bool increasing = TRUE )
因为QHeader经常与表格或者列表部件一起使用,它可以显示排序的次序。这可以通过在节的右边显示一个箭头来实现。如果increasing为TRUE(缺省),箭头指向下;否则向上。
同一时间只能有一个节显示排序指示。如果你不想让任何节显示排序指示器,传入参数section为-1。
void QHeader::setStretchEnabled ( bool b, int section ) [虚]
如果b为TRUE,节section的大小将会随标题的大小调整而调整,以使节占据标题的全部宽度(对于垂直标题则是高度);否则,节section被设置为不可伸缩,也不会随标题的调整大小而调整大小。在section为-1时,如果b为TRUE,所有节的大小相等地随标题的大小调整而调整,以使节占据标题的全部宽度(对于垂直标题则是高度);否则,所有节都被设置为不可伸缩,也不会随标题的调整大小而调整大小。
也参见adjustHeaderSize()。
void QHeader::setStretchEnabled ( bool b )
设置标题的节是否总是占据标题的全部宽度(或者高度)为b。 详见"stretching"属性。
void QHeader::setTracking ( bool enable ) [虚]
设置sizeChange()信号是否持续被发送为enable。 详见"tracking"属性。
void QHeader::sizeChange ( int section, int oldSize, int newSize ) [信号]
当用户把节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()得到本属性值。
Copyright © 2002 Trolltech | Trademarks | 译者:farfareast | Qt 3.0.5版
|