Qt之QTextCursor接口

使用QTextCursor可以执行大多数常见的编辑操作,从基本的文本和文档元素插入到更复杂的文档结构操作。

1、基于指针的编辑

在最简单的层次上,文本文档由一串字符组成,以某种方式标记以表示文档中文本的块结构。QTextCursor提供了一个基于指针的接口,允许在字符级别上操作QTextDocument的内容。由于元素(块、帧、表等)也编码在字符流中,因此文档结构本身可以由QTextCursor更改。

通过两种方式获取QTextCursor:

第一种:

QTextEdit *editor = new QTextEdit();
QTextCursor cursor(editor->textCursor());

第二种:

QTextDocument *document = new QTextDocument(editor);
QTextCursor cursor(document);

还可以像操作数据库一样开启事务操作,以便撤回操作

cursor.beginEditBlock();
cursor.movePosition(QTextCursor::StartOfWord);
cursor.movePosition(QTextCursor::EndOfWord, QTextCursor::KeepAnchor);
cursor.endEditBlock();

也可以获取多个QTextCursor。可以使用多个QTextCursor同时编辑同一个文档,尽管在QTextEdit小部件中只有一个QTextCursor对用户可见。QTextDocument确保每个QTextCursor正确地写入文本,并且不会干扰其他QTextCursor。

使用QTextCursor可以插入文档的元素:

insertBlock()将一个新的文本块(段落)插入光标所在位置的文档中,并将光标移动到新块的开头

insertFragment()将一个现有的文本片段插入到位于光标位置的文档中

insertImage()将图像插入光标所在的文档

insertText()将文本插入到光标所在位置的文档中

insertFrame()在光标当前块之后向文档中插入一个框架,并将光标移动到新框架中空块的开头。

insertList()将一个列表插入到文档中光标所在的位置,并将光标移动到列表中第一项的开头

insertTable()在游标当前块之后将表插入文档,并将游标移动到表后面块的开头。

你可能感兴趣的:(Qt基础学习)