Qt4.7.0文档翻译:QTextCursor类参考,QTextCursor Class Reference
此翻译文章来自Kate dNA的勃客: http://stupidbeauty.com/?_=/article/202/Qt4.7.0文档翻译:QTextCursor类参考,QTextCursor Class Reference ,英文原文见Qt文档。
QTextCursor类提供一个用来访问和修改QTextDocument的编程接口。
文本光标是一些用来通过编程接口访问和修改文本文档的内容和下层结构的对象,那个接口会模仿在文本编辑器中的光标的行为。QTextCursor包含两个信息:光标在一个QTextDocument中的位置和它产生的选择区域。
QTextCursor是按照一个文本光标在一个文本编辑器中的行为来设计的,它提供一个通过用户界面执行标准动作的编辑手段。一个文档可以看成单个的字符串。光标的当前位置(position())一定是以下三者之一:位于字符串中两个相邻的字符之间,或者在第一个字符之前,或者在最后一个字符之后。除咯文本之外,文档还可以包含表格、列表、图片和其它对象。但是,从开发者的角度来看,文档可以看成一个长长的字符串。那个字符串的某些部分可当成是位于特定的块(比如段落)中、或者位于一个表格的单元格中、或者是一个列表中的一个条目、或者其它结构化元素。当我们说“当前字符”("current character")时,我们的指的是文档中正处在光标的位置(position())之前的字符。类似地,“当前块”("current block")指的是包含光标的位置(position())的块。
QTextCursor还有一个锚(anchor())位置。位于锚(anchor())和位置(position())之间的文本就是当前的选择内容。如果anchor() == position()的话,那么就没有选择区域。
可以使用setPosition()和movePosition()来改变光标的位置;后者可用来选中文本。对于选择区域的问题,参见selectionStart()、selectionEnd()、hasSelection()、clearSelection()和 removeSelectedText()。
如果位置(position())是在一个块的开头的话,atBlockStart()会返回真;如果它是在一个块的末尾的话,atBlockEnd()会返回真。当前字符的格式由charFormat()返回,当前块的格式由blockFormat()返回。
可使用setCharFormat()、mergeCharFormat()、setBlockFormat()和 mergeBlockFormat()函数来设置当前文本文档的格式。那些'set'函数会替换掉光标所在的当前字符或者块的格式,而那些'merge'函数会将所提供的格式属性附加到光标对应对象的当前格式中。如果光标有一个选择区域的话,那么给定的格式会应用到当前的选择区域。注意,即使一个块只有一部分被选中的话,块格式还是会应用到整个块。可使用createList()来将当前字符位置的文字转换成一个列表。
可使用deleteChar()、deletePreviousChar()和removeSelectedText()来进行删除。
可使用insertText()函数来将文本字符串插入到文档中,使用insertBlock()来插入块(表示新的段落)。
可以使用insertFragment()来插入已有的文本片段,但是,如果你想插入几段不同格式的文本的话,那么更简单的做法通常是使用insertText()并且设置字符格式。
使用光标,还可以将各种类型的高级结构插入到文档中:
•.•.列表是有序的块元素序列,它们带有圆点或者符号装饰。这些东西是使用insertList()以一种特殊的格式插入的。
•.•.表格是使用insertTable()函数来插入的,并且还能带有一个可选的格式。这些东西包含一个单元格数组,可使用光标在其中遍历。
•.•.嵌入式图片是使用insertImage()插入的。要使用的图片可以一种图片格式指定,或者直接指定文件名。
•.•.帧是使用insertFrame()来插入的,并且带有一个指定的格式。
动作可使用beginEditBlock()和endEditBlock()组合起来(也就是说,在撤销/重做操作中当成一个单独的动作)。
光标的移动被限制在有效的光标位置。在拉丁语系的书写习惯中,是以下位置:在文本中任意2个相邻的字符之间、在第一个字符之前、或在最后一个字符之后。在某些其它的语系的书写习惯中,光标的移动被限制在“簇”("clusters")(比如,梵文中的一个音节,或者一个基本字母加上一个变音符号)中。像movePosition()和deleteChar()这些程序会将光标的移动位置限制在这些有效位置处。参见富文本处理。
Your opinionsHxLauncher: Launch Android applications by voice commands