原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://no001.blog.51cto.com/1142339/282016
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 () const
|
QTextTableFormat
|
format () const
|
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 () const
|
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()函数。尽管如此,只有那些跨越多行或列的表格能被分开。(合并或者分开不改变行和列的数目)
注意如果你已经合并多行和列变为一个单元。你将不能分开合并的单元变为一个比原来拥有更多行或者列的单元。如果你要分开成更多的单元,你需重复分开操作。
|
假设我们有2*3的表,合并第一行的两列,我们引用mergeCells()当
row = 0,
column = 0,
numRows = 1 and
numColumns = 2.
table->mergeCells(0, 0, 1, 2);
|
|
得到下面大的表。分开它,我们使用splitCell()参数
numRows and
numCols = 1.
table->splitCell(0, 0, 1, 1);
|
|
结果.
|
成员函数文件:
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()合并的单元。
程序中操作一个QTextEdit的对象的光标方法:
QTextCursor textCursor=ui->textEdit->textCursor();
textCursor.movePosition(QTextCursor::NextWord, QTextCursor::KeepAnchor);
ui->textEdit->setTextCursor(textCursor);