QTextTable Class Reference[QtGui module]


该类描绘一个表格在QTextDocument


#include <QTextTable>


继承从QTextFrame


注意:该类所有函数都是可重入的


公共函数:


void

appendColumns​ ( int  count )

void

appendRows​ ( int  count )

QTextTableCell

cellAt​ ( int  row, int  column ) const

QTextTableCell

cellAt​ ( int  position ) const

QTextTableCell

cellAt​ ( const QTextCursor &  cursor ) const

int

columns

QTextTableFormat

format

void

insertColumns​ ( int  index, int  columns )

void

insertRows​ ( int  index, int  rows )

void

mergeCells​ ( int  row, int  column, int  numRows, int  numCols )

void

mergeCells​ ( const QTextCursor &  cursor )

void

removeColumns​ ( int  index, int  columns )

void

removeRows​ ( int  index, int  rows )

void

resize​ ( int  rows, int  columns )

QTextCursor

rowEnd​ ( const QTextCursor &  cursor ) const

QTextCursor

rowStart​ ( const QTextCursor &  cursor ) const

int

rows

void

setFormat​ ( const QTextTableFormat &  format )

void

splitCell​ ( int  row, int  column, int  numRows, int  numCols )

 


详细描述:


一个表是一个行列的组合。每一个表包含至少一行和一列。每个单元包含一个块,被一个框架包围。


表通常是使用QTextCursor::insertTable()插入。我们能插入一个表用三行两列在目前的光标位置。


QTextCursor cursor(editor->textCursor());
cursor.movePosition(QTextCursor::Start);
QTextTable *table = cursor.insertTable(rows, columns, tableFormat);


一个表的格式可以在创建时定义,也可使用setFormat()定义。


目前正在编辑的表通常使用QTextCursor::currentTable()函数定位。这允许他的格式或者尺度被改变在他已经被插入到一个文件后。


一个表的大小能别改变使用resize(),或者通过使用insertRows(),insertColumns(),


removeRows(),removeColumns()。。使用cellAt()来找到表格单元。


表格行的开始和结束位置能被找到,通过移动一个光标在一个表内。使用rowStart()和rowEnd()函数来获得光标位置。


在一个QTextTable里的行和列能被合并或者分开,使用mergeCells()和splitCell()函数。尽管如此,只有那些跨越多行或列的表格能被分开。(合并或者分开不改变行和列的数目)


注意如果你已经合并多行和列变为一个单元。你将不能分开合并的单元变为一个比原来拥有更多行或者列的单元。如果你要分开成更多的单元,你需重复分开操作。


Qt Style Sheet(五) --- QTextTable Class Reference_reference

假设我们有2*3的表,合并第一行的两列,我们引用mergeCells()当 row = 0,  column = 0,  numRows = 1 and  numColumns = 2.



 



     table->mergeCells(0, 0, 1, 2);

Qt Style Sheet(五) --- QTextTable Class Reference_table_02

得到下面大的表。分开它,我们使用splitCell()参数  numRows and  numCols = 1.



     table->splitCell(0, 0, 1, 1);

Qt Style Sheet(五) --- QTextTable Class Reference_qt_03

结果.


成员函数文件:


void QTextTable::appendColumns ( int count )


增加count个列在表的右边。


void QTextTable::appendRows ( int count )

​QTextTableCell​​ QTextTable::cellAt ( int row, int column ) const


返回指定行列的表格单元


​QTextTableCell​​ QTextTable::cellAt ( int position ) const

​QTextTableCell​​​ QTextTable::cellAt ( const ​​QTextCursor​​ & cursor ) const

int QTextTable::columns () const

​QTextTableFormat​​ QTextTable::format () const


返回表格的格式


void QTextTable::insertColumns ( int index, int columns )


在index列前,插入columns列。


void QTextTable::insertRows ( int index, int rows )

void QTextTable::mergeCells ( int row, int column, int numRows, int numCols )


合并单元在特别的row和colomn。新的单元将跨越numRows行和numCols列。如果numRows和numCols是少于目前单元跨越的行列数,那么这个方法不起作用。


void QTextTable::mergeCells ( const ​​QTextCursor​​ & cursor )


合并被选择的单元


void QTextTable::removeColumns ( int index, int columns )

void QTextTable::removeRows ( int index, int rows )

void QTextTable::resize ( int rows, int columns )


重设表格的大小,已包括要求的行列。


​QTextCursor​​​ QTextTable::rowEnd ( const ​​QTextCursor​​ & cursor ) const


返回一个光标指向行的结尾。


​QTextCursor​​​ QTextTable::rowStart ( const ​​QTextCursor​​ & cursor ) const

int QTextTable::rows () const

void QTextTable::setFormat ( const ​​QTextTableFormat​​ & format )

void QTextTable::splitCell ( int row, int column, int numRows, int numCols )


这只适合分开已经跨越多行或列的单元,像是已经被mergeCells()合并的单元。