主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QHeader类为诸如表格和列表(listview)等提供标题行或者列。 详见……
#include <qheader.h>
继承了QWidget。
本类提供一个标题,例如一个垂直标题显示行标签,或者一个水平标题显示列标签。它可以用于诸如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()信号被发送。
增加一个带有图标iconset和标签文本s的新节。返回节所加在的索引位置(对于水平标题是在右边,对于垂直标题是在下边)。节的宽度设置为size。若size < 0,则根据文本来选择合适的大小。
调整节的大小,以尽可能全部占据标题的大小。只有isStretchEnabled()为TRUE的那些节会被调整大小。
使用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.
使用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.
使用sectionSize()来代替本函数。
Returns the size in pixels of the section that is displayed at the index i。
如果isClickEnabled()为TRUE,当用户点击节section时,本信号被发送。
返回标题中的节的数目。详见"count"属性。
当用户把节section从索引位置fromIndex移到索引位置toIndex时,本信号被发送。
在section超出范围时(为负或者大于count() - 1),如果所有节都是可点击,返回TRUE,否则返回FALSE。
也参见setClickEnabled()。
如果标题节可以被移动,返回TRUE;否则返回FALSE。详见"moving"属性。
如果section为-1,本函数应用于所有节,也就是说,如果所有节都是可调整大小的,返回TRUE;否则返回FALSE。
也参见setResizeEnabled()。
如果标题节总是占据标题的全部宽度(或者高度),返回TRUE;否则返回FALSE。 详见"stretching"属性。
也参见setStretchEnabled()。
使用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()。
更多解释参见mapTo例子。
使用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()。
更多解释参见mapTo例子。
使用moveSection()来代替本函数。
Moves the section that is currently displayed at index fromIdx to index toIdx。
使用indexChange()来代替本函数。
This signal is emitted when the user has moved the section which is displayed at the index fromIndex to the index toIndex。
返回标题的最左(或者最上)的可见象素。 详见"offset"属性。
返回标题的物理朝向。 详见"orientation"属性。
调用了paintSectionLabel()。
被paintSection()所调用。
当用户按下节section时,本信号被发送。
也参见released()。
当用户释放节section时,本信号被发送。
也参见pressed()。
也参见offset。
使用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)。
也参见offset。
使用resizeSection()来代替本函数。
Sets the size of the section section to s pixels.
警告: does not repaint or send out signals。
如果section为-1(缺省),那么enable值对所有存在的节都设置,而且也应用到增加的新节上。
也参见moving和setResizeEnabled()。
如果该节不存在,什么也不做。
例子:chart/setdataform.cpp和table/small-table-demo/main.cpp。
把节section的图标设置为iconset,文本设置为s。如果size >= 0,节的宽度设置为size;否则不变。
如果该节不存在,什么也不做。
设置标题的节是否可以移动。详见"moving"属性。
设置标题的最左(或者最上)的可见象素为pos。详见"offset"属性。
设置标题的物理朝向。详见"orientation"属性。
如果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。
如果increasing为TRUE(缺省),箭头指向下;否则向上。
同一时间只能有一个节显示排序指示。如果你不想让任何节显示排序指示器,传入参数section为-1。
在section为-1时,如果b为TRUE,所有节的大小相等地随标题的大小调整而调整,以使节占据标题的全部宽度(对于垂直标题则是高度);否则,所有节都被设置为不可伸缩,也不会随标题的调整大小而调整大小。
也参见adjustHeaderSize()。
设置标题的节是否总是占据标题的全部宽度(或者高度)为b。 详见"stretching"属性。
设置sizeChange()信号是否持续被发送为enable。 详见"tracking"属性。
当用户把节section的大小从oldSize改为newSize时,本信号被发送。典型地,本信号连接到一个槽上,这个槽重绘包括该标题的表格或者列表。
如果sizeChange()信号是持续被发送的,返回TRUE;否则返回FALSE。 详见"tracking"属性。
本属性决定标题中的节的数目。
用count()来得到本属性值。
得到本属性值标题的节是否可以被移动。
如果本属性为TRUE,用户可以移动节。如果用户移动某个节,indexChange()信号被发送。
也参见setClickEnabled()和setResizeEnabled()。
用setMovingEnabled()设置本属性值,用isMovingEnabled()得到本属性值。
本属性决定标题的最左(或者最上)的可见象素。
设置本属性将滚动标题以使得offset成为最左(或者最上,对于垂直标题)的可见象素。
用setOffset()设置本属性值,用offset()得到本属性值。
本属性决定标题的物理朝向。
朝向要么是QHeader::Vertical,要么就是QHeader::Horizontal(缺省)。
如果你没有提供大小参数,就要在添加标签之前调用setOrientation(),否则大小会不正确。
用setOrientation()设置本属性值,用orientation()得到本属性值。
本属性决定标题的节是否总是占据标题的全部宽度(或者高度)。
用setStretchEnabled()设置本属性值,用isStretchEnabled()得到本属性值。
本属性决定sizeChange()信号是否持续地被发送。
如果tracking为打开,当鼠标移动(也就是标题被调整大小)时,sizeChange()信号持续地被发送;否则,只有在大小调整结束鼠标按键释放时,才发送信号。
Tracking缺省为FALSE。
用setTracking()设置本属性值,用tracking()得到本属性值。
Copyright © 2002 Trolltech | Trademarks | 译者:farfareast | Qt 3.0.5版
|