强大的QTextEdit功能 联系客服

发布时间 : 星期二 文章强大的QTextEdit功能更新完毕开始阅读8ae0abc676eeaeaad1f33037

文本编辑中显示的文本有一个context。context就是文本编辑的

QMimeSourceFactory用来解析文件和图片的定位的路径。当查询数据时,它被传递给mimeSourceFactory()。(请参考See QTextEdit()和context()。)

使用QTextEdit作为一个编辑器

使用QTextEdit作为显示窗口部件的所有信息这里也适用。

当前格式属性可以通过setItalic()、setBold()、setUnderline()、setFamily()(字体族)、setPointSize()、setColor()和setCurrentFont()来设置。当前段落的对齐方式使用setAlignment()来设置。

使用setSelection()来选择文本。setSelectionAttributes()函数用来指出被选择文本应该如何被显示。使用hasSelectedText()来搜索是否有任何文本被选择。当前被选择文本的位置可以由getSelection()提供并且被选择文本本身被selectedText()返回。选择可以使用copy()来复制到剪贴板,或者使用cut()剪切到剪贴板中。它可以被removeSelectedText()删除。使用selectAll()可以选择(或者取消选择)整个文本。QTextEdit支持多重选择。绝大多数选择函数是在默认选择(选择区0)中操作。如果用户按下非选择键,例如没有按下Shift的情况下的一个光标键,所有选择都被清空。

使用setCursorPosition()和getCursorPosition()可以分别设置和获得光标的位置。当光标被移动,信号currentFontChanged()、currentColorChanged()和

currentAlignmentChanged()被发射来影响新光标位置的字体、颜色和对齐方式。 如果文本改变了,textChanged()信号被发射,并且如果用户通过按下回车键或者换行键插入一个新行,returnPressed()被发射。如果文本已经被修改,isModified()函数将会返回真。

QTextEdit提供基于命令的撤销和恢复。使用setUndoDepth()可以设置命令历史的深度,默认为100步。调用undo()或redo()可以撤销或者恢复上一次操作。信号undoAvailable()和redoAvailable()表明撤销和恢复操作是否可以被执行。 indent()函数用来再次缩进一个段落。它对于代码编辑器是很有用的,例如,Qt设计器的代码编辑器中,Ctrl+I调用indent()函数。 编辑键绑定

编辑中被实现的键绑定的列表:

按键 Backspace Delete

删除光标左侧的字符 删除光标右侧的字符

操作

Ctrl+A Ctrl+B Ctrl+C Ctrl+D Ctrl+E Ctrl+F Ctrl+H Ctrl+K Ctrl+N Ctrl+P Ctrl+V Ctrl+X Ctrl+Z Ctrl+Y LeftArrow

移动光标到行首 向左移动光标一个字符

复制标定的文本到剪贴板(也就是Windows下的Ctrl+Insert) 删除光标右侧的字符 移动光标到行尾 向右移动光标一个字符 删除光标左侧的字符 删除到行尾 移动光标到下一行 移动光标到上一行

把剪贴板文本粘贴到行编辑中(也就是Windows下的Shift+Insert)

剪切标定的文本,复制到剪贴板(也就是Windows下的Shift+Delete) 撤销最后一次操作 恢复最后一次操作 向左移动光标一个字符

Ctrl+LeftArrow 向左移动光标一个单字 RightArrow

向右移动光标一个字符

Ctrl+RightArrow 向右移动光标一个单字 UpArrow Ctrl+UpArrow DownArrow Ctrl+Down Arrow PageUp PageDown Home Ctrl+Home End Ctrl+End

移动光标到上一行 移动光标到上一个单字 移动光标到下一行 移动光标到下一个单字 移动光标到上一页 移动光标到下一页 移动光标到行首 移动光标到文首 移动光标到行尾 移动光标到文尾

Shift+Wheel Ctrl+Wheel

水平的滚动文本(Wheel就是鼠标滚轮) 缩放文本

要选择(标定)文本,按下一个移动键的同时按住Shift键,例如Shift+右箭头将会选择右面的字符,并且Shift+Ctrl+右箭头将会选择右面的单字,等等。 默认情况下,文本编辑窗口部件在插入模式下工作,所以用户输入的文本都被插入到文本编辑中并且光标右面的文本都会移动到不碍事的地方。使用

setOverwriteMode(),这个模式可以被改为覆盖,这时新文本将覆盖光标右面存在的任何文本。

也可以参考基本窗口部件和文本相关类。

成员类型文档

QTextEdit::CursorAction

这个枚举变量被moveCursor()使用,它用来指定光标应该被移动的方向:

? ? ? ? ? ? ? ? ? ? ? ?

QTextEdit::MoveBackward - 向后移动光标一个字符 QTextEdit::MoveWordBackward - 向后移动光标一个单字 QTextEdit::MoveForward - 向前移动光标一个字符 QTextEdit::MoveWordForward - 向前移动光标一个单字 QTextEdit::MoveUp - 向上移动光标一行 QTextEdit::MoveDown - 向下移动光标一行 QTextEdit::MoveLineStart - 移动光标到行首 QTextEdit::MoveLineEnd - 移动光标到行尾 QTextEdit::MoveHome - 移动光标到文首 QTextEdit::MoveEnd - 移动光标到文尾 QTextEdit::MovePgUp - 向上移动光标一页 QTextEdit::MovePgDown - 向下移动光标一页

QTextEdit::KeyboardAction

这个枚举变量被doKeyboardAction()使用,它用来指定哪个操作被执行: QTextEdit::ActionBackspace - 删除光标左面的字符。 ? QTextEdit::ActionDelete - 删除光标右面的字符。 ? QTextEdit::ActionReturn - 在光标位置分割段落。

?

?

QTextEdit::ActionKill - 如果光标不在段尾,从光标位置删除字符,直到段尾。如果光标在段尾,删除段尾的硬回车符——这将会导致这个段落和随后的段落被连接在一起。

QTextEdit::VerticalAlignment

这个枚举变量被用来设置文本的垂直对齐方式。 QTextEdit::AlignNormal - 普通对齐 ? QTextEdit::AlignSuperScript - 上标 ? QTextEdit::AlignSubScript - 下标

?

QTextEdit::WordWrap

这个枚举变量定义了QTextEdit的自动换行模式。下面这些值是有效的: QTextEdit::NoWrap - 不自动换行。

? QTextEdit::WidgetWidth - 在窗口部件的当前宽度自动换行(这是默认的)。默认在空白符号处自动换行,这可以使用setWrapPolicy()来改变。 ? QTextEdit::FixedPixelWidth - 从窗口部件的左侧开始的固定数量的象素数自动换行。象素的数量可以通过wrapColumnOrWidth()来设置。 ? QTextEdit::FixedColumnWidth - 从窗口部件左侧开始的固定数量的列数自动换行。列数可以通过wrapColumnOrWidth()设置。如果你需要使用等宽文本在设备上显示很好的格式文本,这是很有用的,例如标准的VT100终端,你可以把wrapColumnOrWidth()设置为80。

?

也可以参考wordWrap和wordWrap。

QTextEdit::WrapPolicy

这个枚举变量定义了自动换行模式在哪里自动换行。 下面这些值是有效的:

QTextEdit::AtWhiteSpace - 在空白符号处(空格或者换行)自动换行。 ? QTextEdit::Anywhere - 在任何情况下自动换行,包括单字中。 ? QTextEdit::AtWordBoundary - 不要使用这个不赞成的值(它是AtWhiteSpace的同义字,请使用后者替换它)。

?

也可以参考wrapPolicy。

成员函数文档