QTextEdit类

Qt 3.0.5

主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数

QTextEdit类参考

QTextEdit窗口部件提供了强大的单页面的多信息文本编辑器。 详情请见……

#include <qtextedit.h>

继承了QScrollView

QMultiLineEditQTextBrowserQTextView继承。

所有成员函数的列表。

公有成员

公有槽

信号

属性

  • QString documentTitle - 从文本中分析出的文档标题 (只读)
  • bool hasSelectedText - 是否有文本被选择到选择区0中 (只读)
  • int length - 文本的字符数 (只读)
  • bool linkUnderline - 超文本链接是否使用下划线
  • bool modified - 文档是否已经被用户修改
  • bool overwriteMode - 文本编辑的覆盖模式
  • QBrush paper - 背景(纸)的画刷
  • bool readOnly - 文本编辑是否只读
  • QString selectedText - 被选择的文本(在选择区0中)或者如果当前没有被选择的文本(在选择区0中)就是空字符串 (只读)
  • int tabStopWidth - tab stop的象素宽度s
  • QString text - 文本编辑的文本
  • TextFormat textFormat - 文本格式:多信息文本、一般文本或者自动文本
  • int undoDepth - 撤销历史的深度
  • bool undoRedoEnabled - 撤销/恢复是否生效
  • WordWrap wordWrap - 自动换行模式
  • int wrapColumnOrWidth - 被自动换行的文本的位置(根据自动换行模式来决定是像素还是列)
  • WrapPolicy wrapPolicy - 自动换行策略,在空白符号还是在任何地方

保护成员


详细描述

QTextEdit窗口部件提供了强大的单页面的多信息文本编辑器。

介绍和概念

QTextEdit是一个高级的所见即所得的支持使用HTML风格标记的多信息文本格式的查看器/编辑器。它对于处理大文档和快速相应用户的输入进行了优化。

QTextEdit操作的三个模式:

模式 命令 注释
一般文本编辑器 setTextFormat(PlainText) 使用setText()设置文本,text()可以返回一般文本。文本属性(比如颜色)可以被设置,但是一般文本总是被返回。1.
多信息文本编辑器 setTextFormat(RichText) 使用setText()设置文本,text()可以返回多信息文本。多信息文本编辑是相当受限制的。例如你不能设置边白或者插入图片(尽管你可以读取并且正确地显示具有边白和包含图片的文件)。这个模式对于编辑少量的多信息文本是非常有用的。2.
文本查看器3. setReadOnly(TRUE) 使用setText()或append()(这个没有撤销历史,所以更快并且使用更少的内存)来设置文本,text()根据textFormat()返回一般文本或者多信息文本。这个模式可以正确显示HTML中一个比较大的子集。

1.我们建议使用QTextEdit来创建语法高亮的编辑器,因为现在的应用编程接口对于这个目的是不够的。我们希望能在以后的发行中发行一个支持语法高亮的更加完整的应用编程接口。

2.在稍后的Qt发行中计划推出一个更完整的支持设置边白、图片等等的应用编程接口。

3.Qt 3.1将提供一个日志浏览器模式,它是专门为快速地并且有效使用内存地显示大量的只读文本而优化的。

我们建议你总是调用setTextFormat()来设置你想使用的模式。如果你是用AutoText,那么setText()和append()将会试图决定给定的文本是一般文本还是多信息文本。如果你使用RichText,那么setText()和append()总是假设给定的文本是多信息文本。insert()简单的插入给定的文本。

QTextEdit在段落和字符上工作。段落就是被自动换行来适应窗口部件的宽度的被格式化的字符串。默认情况下当读取一般文本时,两个换行符确定一个段落。一个文档由零或更多个段落组成,索引从0开始。字符是基于每一个段落来被索引的,也是从0开始。段落中的单字根据段落的alignment()进行对齐。段落被硬换行分隔。段落中的字符都有自己的属性,例如字体和颜色。

文本编辑文档使用如下概念:

  • 当前格式 -- 这是当前光标位置的格式,如果存在被选择文本,也是它的格式。
  • 当前段落 -- 包含光标的段落。

QTextEdit可以显示图片(使用QMimeSourceFactory)、列表和表格。如果文本太大以至于不能在文本编辑的视口中查看时,滚动条将会出现。文本编辑可以载入一般文本和HTML文件(HTML3.2和4的子集)。表现风格和有效标记集由styleSheet()来定义。自定义标记可以被创建并且被放置到样式单中。可以使用setStyleSheet()改变样式单,具体情况请参考QStyleSheet。通过图片标记识别的图片如果它们可以被使用文本编辑的QMimeSourceFactory解释的话就可以被显示,请参考setMimeSourceFactory()。

如果你想要一个有更多导航的文本浏览器,请使用QTextBrowser。如果你只是想显示一小条多信息文本,请使用QLabel或者QSimpleRichText

如果你创建一个新的QTextEdit并且想允许用户编辑多信息文本,请调用setTextFormat(Qt::RichText)来确保文本被看做多信息文本。(多信息文本使用HTML标记来设置文本格式属性。关于被支持的HTML标记的信息请参考QStyleSheet。)如果你不明确地调用setTextFormat(),文本编辑将会猜测文本自己是多信息文本还是一般文本。这也就是说如果文本看起来像HTML或XML,它可能被解释为多信息文本,所以你应该调用setTextFormat(Qt::PlainText)来保护这些文本。

注意我们并不是要为Qt添加一个具有所有特征的网页浏览器窗口部件(因为这将很容易使Qt的大小加倍并且只有很少的应用程序可以从这里受益)。Qt中的多信息文本支持是被设计为应用程序提供一个快速、可移植并且有效率地方式来添加合理的在线帮助工具,并且提供一个多信息文本编辑器的基础。

使用QTextEdit作为一个显示窗口部件

QTextEdit可以显示一个包括表格和图片的大的HTML子集。

文本通过使用setText()来设置或者替换,它删除任何已经存在的文本并且用传递给setText()调用的文本替换它。如果你使用继承HTML(强制使用setTextFormat(RichText))调用setText(),并且然后调用text(),返回的文本可能有不同的标签,但是它们呈现的都是一样的。文本可以使用insert()、paste()、pasteSubType()和append()来插入。被添加的文本没有进入撤销历史中,这使得append()更快并且消耗更少的内存。文本也可以被cut()。整个文本可以使用clear()来被删除并且被选择的文本可以使用removeSelectedText()来被删除。被选择(被标记)的文本也可以使用del()来被删除(如果没有文本被选择,这将删除光标右面的字符)。

可以使用setText()和text()来达到载入和保存文本的目的,例如:

    QFile file( fileName ); // 从文件中读取文本
    if ( file.open( IO_ReadOnly ) ) {
        QTextStream ts( &file );
        textEdit->setText( ts.read() );
    }
    
    QFile file( fileName ); // 把文本写入到文件中
    if ( file.open( IO_WriteOnly ) ) {
        QTextStream ts( &file );
        ts << textEdit->text();
        textEdit->setModified( FALSE );
    }
    

默认这个文本编辑会在空白符号处自动换行来适应文本编辑窗口部件。setWordWrap()函数用来指定你想要的自动换行方式,或者如果你不像要任何自动换行,请使用NoWrap。调用setWordWrap()来设置固定的像素宽度FixedPixelWidth,或者由setWrapColumnOrWidth()确定的像素或者列数的字符列数(例如80列)FixedColumnWidth。如果你是用自动换行来适应窗口部件的宽度WidgetWidth,你可以使用setWrapPolicy()来指定是在空白符号或者任何地方自动换行。

背景色的设置与其它窗口部件不同,使用setPaper()。你可以指定画刷风格是一个普通颜色或者一个复杂的像素映射。

超文本链接可以自动加上下划线,这个可以通过setLinkUnderline()来改变。tab stop宽度可以使用setTabStopWidth()来设置。

zoomIn()和zoomOut()函数能够用来通过增加(对于zoomOut()是减少)使用的点的大小来重新定义文本的大小。

lines()函数返回文本中的行数并且paragraphs()返回段落数。特定段落中的函数可以通过linesOfParagraph()返回。整个文本的字符长度可以通过length()返回。

你可以滚动到文本中的一个锚,也就是通过scrollToAnchor()到达<a name="anchor">find()函数可以被用来找到和选择文本中的给定字符串。

只读的QTextEdit提供了和(废弃的)QTextEdit相同的功能。(QTextView仍被提供用来保证旧代码的兼容性。)

只读的键绑定

当QTextEdit被使用的时候,只读的键绑定仅限于浏览,并且文本只能被鼠标选定:

按键 操作
UpArrow 向上移动一行
DownArrow 向下移动一行
LeftArrow 向左移动一个字符
RightArrow 向右移动一个字符
PageUp 向上移动一页(视口)
PageDown 向下移动一页(视口)
Home 移动到文本开始处
End 移动到文本结束处
Shift+Wheel 水平的滚动文本(Wheel就是鼠标滚轮)
Ctrl+Wheel 缩放文本

文本编辑也可以提供一些元信息。例如,documentTitle()函数将返回来自HTML的<title>标签中的文本。

文本编辑中显示的文本有一个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 复制标定的文本到剪贴板(也就是Windows下的Ctrl+Insert
Ctrl+D 删除光标右侧的字符
Ctrl+E 移动光标到行尾
Ctrl+F 向右移动光标一个字符
Ctrl+H 删除光标左侧的字符
Ctrl+K 删除到行尾
Ctrl+N 移动光标到下一行
Ctrl+P 移动光标到上一行
Ctrl+V 把剪贴板文本粘贴到行编辑中(也就是Windows下的Shift+Insert
Ctrl+X 剪切标定的文本,复制到剪贴板(也就是Windows下的Shift+Delete
Ctrl+Z 撤销最后一次操作
Ctrl+Y 恢复最后一次操作
LeftArrow 向左移动光标一个字符
Ctrl+LeftArrow 向左移动光标一个单字
RightArrow 向右移动光标一个字符
Ctrl+RightArrow 向右移动光标一个单字
UpArrow 移动光标到上一行
Ctrl+UpArrow 移动光标到上一个单字
DownArrow 移动光标到下一行
Ctrl+Down Arrow 移动光标到下一个单字
PageUp 移动光标到上一页
PageDown 移动光标到下一页
Home 移动光标到行首
Ctrl+Home 移动光标到文首
End 移动光标到行尾
Ctrl+End 移动光标到文尾
Shift+Wheel 水平的滚动文本(Wheel就是鼠标滚轮)
Ctrl+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。

也可以参考wordWrapwordWrap

QTextEdit::WrapPolicy

这个枚举变量定义了自动换行模式在哪里自动换行。

下面这些值是有效的:

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

也可以参考wrapPolicy


成员函数文档

QTextEdit::QTextEdit ( const QString & text, const QString & context = QString::null, QWidget * parent = 0, const char * name = 0 )

使用父对象parent和名称name构造一个QTextEdit。文本编辑将使用上下文context来显示文本text

context是文本编辑的QMimeSourceFactory用来解析文件和图片的定位的路径。当查询数据时,它被传递给mimeSourceFactory()。

例如,如果文本包含一个文本标签<img src="image.png">,并且上下文为“path/to/look/in”,那么QMimeSourceFactory将会试图从“path/to/look/in/image.png”载入图片。如果标签为<img src="/image.png">,context将不会被使用(因为QMimeSourceFactory识别出了我们使用的是绝对路径)并且将会试图载入“/image.png”。context也可以正确的适用于hrefs,例如<a href="target.html">Target</a>,将会被识别为“path/to/look/in/target.html”。

QTextEdit::QTextEdit ( QWidget * parent = 0, const char * name = 0 )

使用父对象parent和名称name构造一个空的QTextEdit。

int QTextEdit::alignment () const

返回当前段落的对齐方式。

也可以参考setAlignment()。

QString QTextEdit::anchorAt ( const QPoint & pos )

如果在pos位置有一个锚(在内容坐标中),它的名称被返回,否则返回空字符串。

void QTextEdit::append ( const QString & text ) [虚 槽]

把文本text添加到文本编辑的结尾。注意这个函数会清空撤销/恢复历史。

实例:network/clientserver/client/client.cppnetwork/clientserver/server/server.cppnetwork/httpd/httpd.cppprocess/process.cpp

bool QTextEdit::bold () const

如果当前格式是粗体的,返回真,否则返回假。

也可以参考setBold()。

int QTextEdit::charAt ( const QPoint & pos, int * para ) const

返回在pos位置(在内容坐标中)的字符的索引(相对于它的段落)。如果para不为零,*para被设置为当前段落。如果在pos没有字符,-1被返回。

void QTextEdit::clear () [虚 槽]

删除文本编辑中的所有文本。

也可以参考cut(), removeSelectedText()和text

void QTextEdit::clearParagraphBackground ( int para ) [虚 槽]

清除para段落的背景色,所以背景色将再次被使用。

QColor QTextEdit::color () const

返回当前格式的颜色。

也可以参考setColor()和paper

QString QTextEdit::context () const

返回编辑的context。context是文本编辑的QMimeSourceFactory用来解析文件和图片的定位的路径。

也可以参考text

实例:helpviewer/helpwindow.cppqdir/qdir.cpp

void QTextEdit::copy () [虚 槽]

复制任何选择文本(从选择区0中)到剪贴板。

也可以参考hasSelectedTextcopyAvailable()。

void QTextEdit::copyAvailable ( bool yes ) [信号]

当文本编辑中的文本被选择或者取消选择时,这个信号被发射。

当文本被选择时,这个信号被发射,这时yes被设置为真。如果没有文本被选择或者如果被选择文本被取消选择,这个信号被发射,这时yes被设置为假。

如果yes为真,那么copy()可以被用来复制所选文本到剪贴板。如果yes为假,那么copy()什么也不做。

也可以参考selectionChanged()。

QPopupMenu * QTextEdit::createPopupMenu ( const QPoint & pos ) [虚 保护]

这个函数被用来在文档pos位置创建一个右键弹出菜单。如果你想创建一个自定义弹出菜单,重新实现这个函数并且返回被创建的弹出菜单。弹出菜单的所有权被传递给调用者。

QPopupMenu * QTextEdit::createPopupMenu () [虚 保护]

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。

这个函数被用来创建一个右键弹出菜单。如果你想创建一个自定义弹出菜单,重新实现这个函数并且返回被创建的弹出菜单。弹出菜单的所有权被传递给调用者。

这个函数只有在createPopupMenu( const QPoint & )返回0时才能被调用。

void QTextEdit::currentAlignmentChanged ( int a ) [信号]

如果当前段落的对齐方式已经改变时,这个信号被发射。

新的对齐方式是a

也可以参考setAlignment()。

void QTextEdit::currentColorChanged ( const QColor & c ) [信号]

如果当前格式的颜色已经改变时,这个信号被发射。

新的颜色是c

也可以参考setColor()。

void QTextEdit::currentFontChanged ( const QFont & f ) [信号]

如果当前格式的字体已经改变时,这个信号被发射。

新的字体是f

也可以参考setCurrentFont()。

void QTextEdit::currentVerticalAlignmentChanged ( VerticalAlignment a ) [信号]

如果当前格式的垂直对齐方式已经改变时,这个信号被发射。

新的垂直对齐方式是a

也可以参考setVerticalAlignment()。

void QTextEdit::cursorPositionChanged ( QTextCursor * c ) [信号]

如果光标位置发生改变,这个信号被发射。c指向文本光标对象。

也可以参考setCursorPosition()。

void QTextEdit::cursorPositionChanged ( int para, int pos ) [信号]

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

如果光标位置发生改变,这个信号被发射。para包含段落索引并且pos包含段落中的字符位置。

也可以参考setCursorPosition()。

void QTextEdit::cut () [虚 槽]

复制被选择文本(从选择区0中)到剪贴板并且从文本编辑中删除它。

如果没有被选择文本(在选择区0中),就什么也不发生。

也可以参考QTextEdit::copy(), paste()和pasteSubType()。

void QTextEdit::del () [虚 槽]

如果有被选择文本(在选择区0中),它就被删除。如果没有被选择文本(在选择区0中),文本光标右面的字符被删除。

也可以参考removeSelectedText()和cut()。

void QTextEdit::doKeyboardAction ( KeyboardAction action ) [虚 槽]

执行键盘操作action。这通常被键盘事件处理器调用。

QString QTextEdit::documentTitle () const

返回从文本中解析的文档标题。详细情况请参考“documentTitle”属性。

void QTextEdit::ensureCursorVisible () [虚 槽]

如果需要,确保滚动文本编辑时光标是可视的。

也可以参考setCursorPosition()。

QString QTextEdit::family () const

返回当前格式的字体族。

也可以参考setFamily(), setCurrentFont()和setPointSize()。

bool QTextEdit::find ( const QString & expr, bool cs, bool wo, bool forward = TRUE, int * para = 0, int * index = 0 ) [虚]

找到字符串expr下一个出现位置。如果expr被找到,返回真,否则返回假。

如果paraindex都为零,搜索将从当前光标位置开始。如果paraindex全不为零,搜索将从*para段的*index字符位置开始。

如果cs为真,搜索是区分大小写的,否则它是不区分大小写的。如果wo为真,搜索将查找匹配整个单字的,否则它搜索任何匹配的文本。如果forward为真(默认),搜索将从开始位置到文尾进行工作,否则它从开始位置到文首进行工作。

如果expr被找到,函数返回真。如果indexpara不为零,被找到的匹配项的第一个字符的段落号被放到*para,并且这个字符在段落中的索引位置被放到*index

如果expr没有被找到,函数返回假。如果indexpara不为零,并且expr没有被找到,*index*para都是不确定的。

bool QTextEdit::focusNextPrevChild ( bool n ) [虚 保护]

重新实现用来允许链接间移动焦点。如果n为真,tab把焦点移动到下一个子对象,如果n为假,tab把焦点移动到上一个子对象。如果焦点被移动,返回真,否则返回假。

QFont QTextEdit::font () const

返回当前格式的字体。

也可以参考setCurrentFont(), setFamily()和setPointSize()。

实例:action/application.cppapplication/application.cppmdi/application.cppqwerty/qwerty.cpp

void QTextEdit::getCursorPosition ( int * para, int * index ) const

这个函数设置*para*index参数到当前光标位置。paraindex必须为非空整形指针。

也可以参考setCursorPosition()。

void QTextEdit::getSelection ( int * paraFrom, int * indexFrom, int * paraTo, int * indexTo, int selNum = 0 ) const

如果有选择,*paraFrom被设置为选择开始的段落号并且*paraTo被设置为选择结束的段落号。(它们可以是相同的。)*indexFrom被设置为*paraFrom中选择的开始索引并且*indexTo被设置为*paraTo中选择的结束缩影。

如果没有选择,*paraFrom*indexFrom*paraTo*indexTo都被设置为-1。

paraFromindexFromparaToindexTo都必须为非空整形指针。

selNum是选择的数量(多重选择是被支持的)。它默认为0(默认选择)。

也可以参考setSelection()和selectedText

bool QTextEdit::hasSelectedText () const

如果在选择区0中一些文本被选择,返回真,否则返回假。详细情况请参考“hasSelectedText”属性。

int QTextEdit::heightForWidth ( int w ) const [虚]

返回如果文本编辑有w象素宽,文本编辑需要有多少象素高才能显示所有文本。

QWidget中被重新实现。

void QTextEdit::indent () [虚 槽]

重新缩进当前段落。

void QTextEdit::insert ( const QString & text, bool indent = FALSE, bool checkNewLine = TRUE, bool removeSelected = TRUE ) [虚 槽]

在当前光标位置插入text。如果indent为真,这个段落被重新缩进。如果checkNewLine为真,在text中的新行符导致真正的硬换行(也就是新的段落)。如果checkNewLine为假,text重的新行符的行为是不确定的。如果checkNewLine为假,如果text包含新行符,编辑器的行为是不确定的。如果removeSelected为真,任何被选择文本(在选择区0中)在文本被插入之前被移除。

也可以参考paste()和pasteSubType()。

void QTextEdit::insertAt ( const QString & text, int para, int index ) [虚 槽]

para段落和index位置插入text

void QTextEdit::insertParagraph ( const QString & text, int para ) [虚 槽]

在位置para插入text作为段落。如果para为-1,这些文本被追加。

bool QTextEdit::isModified () const

如果文档已经被用户修改,返回真,否则返回假。详细情况请参考“modified”属性。

bool QTextEdit::isOverwriteMode () const

返回文本编辑的覆盖模式。详细情况请参考“overwriteMode”属性。

bool QTextEdit::isReadOnly () const

如果文本编辑是只读的,返回真,否则返回假。详细情况请参考“readOnly”属性。

bool QTextEdit::isRedoAvailable () const

返回恢复是否可用。

bool QTextEdit::isUndoAvailable () const

返回撤销是否可用。

bool QTextEdit::isUndoRedoEnabled () const

如果撤销/恢复是生效的,返回真,否则返回假。详细情况请参考“undoRedoEnabled”属性。

bool QTextEdit::italic () const

如果当前格式是斜体的,返回真,否则返回假。

也可以参考setItalic()。

void QTextEdit::keyPressEvent ( QKeyEvent * e ) [虚 保护]

处理键盘事件e。默认情况,键盘事件是用来提供键盘导航和文本编辑的。

QWidget中被重新实现。

QTextBrowser中被重新实现。

int QTextEdit::length () const

返回文本中的字符数。详细情况请参考“length”属性。

int QTextEdit::lineOfChar ( int para, int index )

返回在para段落的index位置出现的字符在段落中的行数。index位置是相对于段首的位置。如果没有这个段落或者在index位置没有这样一个字符(也就是说索引超出范围),-1被返回。

int QTextEdit::lines () const

返回文本编辑中的行数,它可以为0。

警告: 这个函数也许比较慢。行数会在自动换行期间发生改变,所以这个函数不得不遍历所有的段落并且分别得到它们的行数。

实例:action/application.cppapplication/application.cpp

int QTextEdit::linesOfParagraph ( int para ) const

返回para段落的行数,或者如果在para索引没有这个段落,返回-1。

bool QTextEdit::linkUnderline () const

如果超文本链接将显示下划线,返回真,否则返回假。详细情况请参考“linkUnderline”属性。

QMimeSourceFactory * QTextEdit::mimeSourceFactory () const

返回这个文档编辑当前使用的QMimeSourceFactory

也可以参考setMimeSourceFactory()。

实例:helpviewer/helpwindow.cppqdir/qdir.cpp

void QTextEdit::modificationChanged ( bool m ) [信号]

当文档修改发生改变时,这个信号被发射。如果m为真,文档被修改了,否则修改状态已经被重置为未修改。

也可以参考modified

void QTextEdit::moveCursor ( CursorAction action, bool select ) [虚 槽]

根据action移动文本光标。这通常被一些键盘事件处理器使用。select指定从当前光标位置到新位置之间的文本是否应该被选定。

QBrush QTextEdit::paper () const

返回背景(纸)的画刷。详细情况请参考“paper”属性。

int QTextEdit::paragraphAt ( const QPoint & pos ) const

返回在pos位置(在内容坐标中)的段落,或者如果在pos索引没有段落,返回-1。

QColor QTextEdit::paragraphBackgroundColor ( int para ) const

返回para段落的背景色或者如果para超出范围或者这个段落没有背景设置,返回一个无效的颜色。

int QTextEdit::paragraphLength ( int para ) const

返回para段落的长度(字符数),或者如果para超出范围或者这个段落没有背景设置,返回-1。

QRect QTextEdit::paragraphRect ( int para ) const

返回para段落在内容坐标中的矩形,或者如果para超出范围,返回一个无效矩形。

int QTextEdit::paragraphs () const

返回文本中的段落数,它可以为0。

void QTextEdit::paste () [虚 槽]

把剪贴板中的文本粘贴到文本编辑的当前光标位置。只有一般文本能够被粘贴。

如果剪贴板中没有文本,就什么也没发生。

也可以参考pasteSubType(), cut()和QTextEdit::copy()。

void QTextEdit::pasteSubType ( const QCString & subtype ) [虚 槽]

把剪贴板中格式为subtype的文本粘贴到文本编辑的当前光标位置。subtype可以是“plain”或“html”。

如果剪贴板中没有subtype格式的文本,就什么也没发生。

也可以参考paste(), cut()和QTextEdit::copy()。

void QTextEdit::placeCursor ( const QPoint & pos, QTextCursor * c = 0 ) [虚 槽]

在离pos位置(在内容坐标中)最近的字符放置光标c。如果c为0,默认的文本光标被放置。

也可以参考setCursorPosition()。

int QTextEdit::pointSize () const

返回当前格式的字体的点的大小。

也可以参考setFamily(), setCurrentFont()和setPointSize()。

void QTextEdit::redo () [虚 槽]

恢复上一次操作。

如果没有操作可以恢复,例如,在撤销/恢复历史中没有恢复步骤,就什么也没发生。

也可以参考redoAvailable(), undo()和undoDepth

void QTextEdit::redoAvailable ( bool yes ) [信号]

当恢复的可用性发生改变时,这个信号被发射。如果yes为真,那么redo()可以一直工作到redoAvailable( FALSE )被发射。

也可以参考redo()和undoDepth

void QTextEdit::removeParagraph ( int para ) [虚 槽]

移除para段落。

void QTextEdit::removeSelectedText ( int selNum = 0 ) [虚 槽]

删除selNum(默认为0)选择区中的被选定文本(也就是默认选择的文本)。如果没有被选定文本,就什么也没发生。

也可以参考selectedTextremoveSelection()。

void QTextEdit::removeSelection ( int selNum = 0 ) [虚 槽]

移除selNum(默认为0)选择区。这不会移除被选定文本。

也可以参考removeSelectedText()。

void QTextEdit::repaintChanged () [保护]

重新绘制任何已经改变的段落。

尽管在内部广泛地使用,但是你也不应该需要自己调用这个函数。

void QTextEdit::returnPressed () [信号]

如果用户按下回车键或者换行键,这个信号被发射。

void QTextEdit::scrollToAnchor ( const QString & name ) [虚 槽]

滚动文本编辑来使在被叫作name的锚的文本可视,如果它在文档中可以被发现的话。如果这个锚不能被找到,就没有滚动发生。锚是使用HTML锚标签,也就是<a name="target">定义的。

void QTextEdit::scrollToBottom () [虚 槽]

滚动到文本的底部并且如果需要就重新执行格式操作。

void QTextEdit::selectAll ( bool select = TRUE ) [虚 槽]

如果select为真(默认),所有的文本都被选择作为选择区0。如果select为假,所有的文本都被取消选择,也就是默认选择区(选择区0)被清空。

也可以参考selectedText

QString QTextEdit::selectedText () const

返回被选定文本(从选择区0中)或者如果当前没有被选定文本(在选择区0中)返回空字符串。详细情况请参考“selectedText”属性。

void QTextEdit::selectionChanged () [信号]

只要选择发生改变,这个信号就被发射。

也可以参考setSelection()和copyAvailable()。

void QTextEdit::setAlignment ( int a ) [虚 槽]

设置当前段落的对齐方式为a。有效的对齐方式为Qt::AlignLeftQt::AlignRight、Qt::AlignJustify和Qt::AlignCenter(这个是水平中间)。

QMultiLineEdit中被重新实现。

void QTextEdit::setBold ( bool b ) [虚 槽]

如果b为真,设置当前格式为粗体,否则设置当前格式为非粗体。

也可以参考bold()。

void QTextEdit::setColor ( const QColor & c ) [虚 槽]

设置当前格式的颜色,也就是文本的颜色,为c

也可以参考color()和paper

实例:action/actiongroup/editor.cpp

void QTextEdit::setCurrentFont ( const QFont & f ) [虚 槽]

设置当前格式的字体为f

也可以参考font(), setPointSize()和setFamily()。

void QTextEdit::setCursorPosition ( int para, int index ) [虚 槽]

设置光标到para段落的index位置。

也可以参考getCursorPosition()。

void QTextEdit::setFamily ( const QString & fontFamily ) [虚 槽]

设置当前格式的字体族为fontFamily

也可以参考family()和setCurrentFont()。

void QTextEdit::setItalic ( bool b ) [虚 槽]

如果b为真,设置当前格式为斜体,否则设置当前格式为非斜体。

也可以参考italic()。

void QTextEdit::setLinkUnderline ( bool ) [虚 槽]

设置超文本链接是否显示下划线。详细情况请参考“linkUnderline”属性。

void QTextEdit::setMimeSourceFactory ( QMimeSourceFactory * factory ) [虚 槽]

设置文本编辑的mime源工厂为 factory。详细情况请参考QMimeSourceFactory

也可以参考mimeSourceFactory()。

void QTextEdit::setModified ( bool m ) [虚 槽]

设置文档是否已经被用户修改为m。详细情况请参考“modified”属性。

void QTextEdit::setOverwriteMode ( bool b ) [虚 槽]

设置文本编辑的覆盖模式为b。详细情况请参考“overwriteMode”属性。

void QTextEdit::setPaper ( const QBrush & pap ) [虚 槽]

设置背景(纸)的画刷为pap。详细情况请参考“paper”属性。

void QTextEdit::setParagraphBackgroundColor ( int para, const QColor & bg ) [虚 槽]

设置para段落的背景色为bg

void QTextEdit::setPointSize ( int s ) [虚 槽]

设置当前格式的点大小为s

注意如果s为0或者负数,这个函数的行为是不确定的。

也可以参考pointSize(), setCurrentFont()和setFamily()。

void QTextEdit::setReadOnly ( bool b ) [虚 槽]

设置文本编辑是否只读为b。详细情况请参考“readOnly”属性。

void QTextEdit::setSelection ( int paraFrom, int indexFrom, int paraTo, int indexTo, int selNum = 0 ) [虚 槽]

设置一个选择从paraFrom段落的indexFrom位置开始,直到paraTo段落的indexTo位置结束。有不同id(selNum)的选择区不会被移除,有相同id(selNum)的选择区会被移除。

使用selNum选择区的选择设置。如果selNum为0,这个就是默任选择了。

如果selNum为0,光标被移动到这个选择的结尾,否则光标位置保持不变。

也可以参考getSelection()和selectedText

void QTextEdit::setSelectionAttributes ( int selNum, const QColor & back, bool invertText ) [虚 槽]

设置selNum选择区的背景色为back并且指定这个选择区的文本是否应该被使用invertText反白。

这个只在selNum > 0的时候工作。默认选择(selNum == 0)从这个窗口部件的colorGroup()得到它的属性。

void QTextEdit::setStyleSheet ( QStyleSheet * styleSheet ) [虚 槽]

设置这个文本编辑使用的样式单为styleSheet。改变仅对通过setText()或append()新增的文本有效。

也可以参考styleSheet()。

void QTextEdit::setTabStopWidth ( int ts ) [虚 槽]

设置tab stop宽度为ts象素。详细情况请参考“tabStopWidth”属性。

void QTextEdit::setText ( const QString & txt ) [槽]

设置文本编辑的文本为txt。详细情况请参考“text”属性。

void QTextEdit::setText ( const QString & text, const QString & context ) [虚 槽]

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

改变文本编辑的文本为txt并且上下文为context。任何以前的文本都被移除。

text可以被解释为一般文本或者多信息文本,取决于textFormat()。默认设置为AutoText,也就是说文本编辑从text中自动检测格式。

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

注意这个函数会清空撤销/恢复历史。

也可以参考texttextFormat

void QTextEdit::setTextFormat ( TextFormat f ) [虚 槽]

设置文本格式:多信息文本、一般文本或者自动文本为f。详细情况请参考“textFormat”属性。

void QTextEdit::setUnderline ( bool b ) [虚 槽]

如果b为真,设置当前格式是有下划线的,否则设置当前格式是没有下划线的。

也可以参考underline()。

void QTextEdit::setUndoDepth ( int d ) [虚 槽]

设置撤销历史的深度为d。详细情况请参考“undoDepth”属性。

void QTextEdit::setUndoRedoEnabled ( bool b ) [虚 槽]

设置撤销/恢复是否生效为b。详细情况请参考“undoRedoEnabled”属性。

void QTextEdit::setVerticalAlignment ( VerticalAlignment a ) [虚 槽]

设置当前格式的垂直对齐方式,也就是文本的,为a

也可以参考color()和paper

void QTextEdit::setWordWrap ( WordWrap mode ) [虚 槽]

设置自动换行模式为mode。详细情况请参考“wordWrap”属性。

void QTextEdit::setWrapColumnOrWidth ( int ) [虚 槽]

设置将被自动换行的文本的位置(根据自动换行模式决定是象素还是列数)。详细情况请参考“wrapColumnOrWidth”属性。

void QTextEdit::setWrapPolicy ( WrapPolicy policy ) [虚 槽]

设置自动换行策略,是在空白符号还是在任意处为policy。详细情况请参考“wrapPolicy”属性。

QStyleSheet * QTextEdit::styleSheet () const

返回文本编辑中当前使用的QStyleSheet

也可以参考setStyleSheet()。

实例:helpviewer/helpwindow.cpp

int QTextEdit::tabStopWidth () const

返回tab stop的象素宽度。详细情况请参考“tabStopWidth”属性。

QString QTextEdit::text () const

返回文本编辑的文本。详细情况请参考“text”属性。

QString QTextEdit::text ( int para ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

返回para段落的文本。

如果textFormat()为RichText,文本将包含HTML格式标签。

void QTextEdit::textChanged () [信号]

只要文本编辑中的文本发生改变,这个信号就被发射。

也可以参考textappend()。

实例:helpviewer/helpwindow.cppqwerty/qwerty.cpprot13/rot13.cpp

QTextCursor * QTextEdit::textCursor () const [保护]

返回文本编辑的文本光标。

警告: QTextCursor不在公有的应用编程接口中,但在一些特殊环境中你也许需要使用它。

TextFormat QTextEdit::textFormat () const

返回文本格式:多信息文本、一般文本或者自动文本。详细情况请参考“textFormat”属性。

bool QTextEdit::underline () const

如果当前格式是有下划线的,返回真,否则返回假。

也可以参考setUnderline()。

void QTextEdit::undo () [虚 槽]

撤销上一次操作。

如果没有操作可以撤销,例如在撤销/恢复历史中没有撤销步骤,那就什么也没发生。

也可以参考undoAvailable(), redo()和undoDepth

void QTextEdit::undoAvailable ( bool yes ) [信号]

当撤销的可能性发生变化时,这个信号被发射。如果yes为真,那么undo()将会一直工作到undoAvailable( FALSE )下一次被发射为止。

也可以参考undo()和undoDepth

int QTextEdit::undoDepth () const

返回撤销历史的深度。详细情况请参考“undoDepth”属性。

WordWrap QTextEdit::wordWrap () const

返回自动换行模式。详细情况请参考“wordWrap”属性。

int QTextEdit::wrapColumnOrWidth () const

返回将被自动换行的文本的位置(根据自动换行模式决定是象素还是列数)。详细情况请参考“wrapColumnOrWidth”属性。

WrapPolicy QTextEdit::wrapPolicy () const

返回自动换行策略是在空白符号还是在任意处。详细情况请参考“wrapPolicy”属性。

void QTextEdit::zoomIn ( int range ) [虚 槽]

通过把基本字体大小增大range点并且重新计算所有字体大小来放大文本。这不会改变任何图片的大小。

也可以参考zoomOut()。

void QTextEdit::zoomIn () [虚 槽]

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

通过把基本字体大小增大1点并且重新计算所有字体大小来放大文本。这不会改变任何图片的大小。

也可以参考zoomOut()。

void QTextEdit::zoomOut ( int range ) [虚 槽]

通过把基本字体大小缩小range点并且重新计算所有字体大小来放大文本。这不会改变任何图片的大小。

也可以参考zoomIn()。

void QTextEdit::zoomOut () [虚 槽]

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

通过把基本字体大小缩小1点并且重新计算所有字体大小来放大文本。这不会改变任何图片的大小。

也可以参考zoomIn()。

void QTextEdit::zoomTo ( int size ) [虚 槽]

通过把基本字体大小变为size点并且重新计算所有字体大小来显示文本。这不会改变任何图片的大小。

属性文档

QString documentTitle

这个属性保存的是从文本中分析出的文档标题。

对于PlainText,标题将为空字符串。对于RichText,如果存在,标题将为<title>标签之间的文本,否则为空字符串。

通过documentTitle()来获得属性值。

bool hasSelectedText

这个属性保存的是是否有文本被选择到选择区0中。

通过hasSelectedText()来获得属性值。

int length

这个属性保存的是文本的字符数。

通过length()来获得属性值。

bool linkUnderline

这个属性保存的是超文本链接是否使用下划线。

如果为真(默认),超文本链接将被显示下划线。如果为假,链接将不被显示下划线。

通过setLinkUnderline()设置属性值并且通过linkUnderline()来获得属性值。

bool modified

这个属性保存的是文档是否已经被用户修改。

通过setModified()设置属性值并且通过isModified()来获得属性值。

bool overwriteMode

这个属性保存的是文本编辑的覆盖模式。

如果为真(默认),用户输入的文本都被插入到文本编辑中并且光标右面的文本都会移动到不碍事的地方。如果为假,编辑器是覆盖模式,也就是说新文本将覆盖光标右面存在的任何文本。

通过setOverwriteMode()设置属性值并且通过isOverwriteMode()来获得属性值。

QBrush paper

这个属性保存的是背景(纸)的画刷。

这个画刷是当前用于绘制文本编辑的背景的。初始设置是空画刷。

通过setPaper()设置属性值并且通过paper()来获得属性值。

bool readOnly

这个属性保存的是文本编辑是否只读。

在只读的文本编辑中,用户只能在文本中浏览和选择文本,修改文本是不可能的。

这个属性默认为假。

通过setReadOnly()设置属性值并且通过isReadOnly()来获得属性值。

QString selectedText

这个属性保存的是被选择的文本(在选择区0中)或者如果当前没有被选择的文本(在选择区0中)就是空字符串。

这个文本不管文本格式总是被作为PlainText返回。在Qt的未来的版本中,根据文本格式,HTML的子集可能被返回。

也可以参考hasSelectedText

通过selectedText()来获得属性质。

int tabStopWidth

这个属性保存的是tab stop的象素宽度。

通过setTabStopWidth()设置属性值并且通过tabStopWidth()来获得属性值。

QString text

这个属性保存的是文本编辑的文本。

这里没有默认文本。

在设置的时候,任何以前的文本都被删除了。

根据textFormat(),文本可以被作为一般文本或者多信息文本来解释。默认设置为AutoText,也就是说文本编辑自动探测文本格式。

对于多信息文本,在可编辑的QTextEdit上调用text()将会导致文本会被文本编辑重新生成。这也许意味着被返回的QString也许和原来被设置的不同。

也可以参考textFormat

通过setText()设置属性值并且通过text()来获得属性值。

TextFormat textFormat

这个属性保存的是文本格式:多信息文本、一般文本或者自动文本。

文本格式是下列之一:

  • PlainText - 所有的文本,除了新行符,包括空格都被逐字地显示。只要文本中出现一个新行符,文本编辑就插入一个硬换行并且开始一个新的段落。
  • RichText - 多信息文本表现。可用的样式在默认样式单QStyleSheet::defaultSheet()中定义。
  • AutoText - 这是默认值。文本编辑会自动探测哪一个表现样式更好,PlainTextRichText这个是通过使用QStyleSheet::mightBeRichText()函数完成的。

通过setTextFormat()设置属性值并且通过textFormat()来获得属性值。

int undoDepth

这个属性保存的是撤销历史的深度。

也就是撤销/恢复历史中的最大步数。默认为100。

也可以参考undo()和redo()。

通过setUndoDepth()设置属性值并且通过undoDepth()来获得属性值。

bool undoRedoEnabled

这个属性保存的是撤销/恢复是否生效。

默认为真。

通过setUndoRedoEnabled()设置属性值并且通过isUndoRedoEnabled()来得到属性值。

WordWrap wordWrap

这个属性保存的是自动换行模式。

默认模式是WidgetWidth,也就是在文本编辑右边缘的单字将被自动换行。在空白字符处自动换行,保证整个单字不被分割。如果你想在单字内自动换行,请使用setWrapPolicy()。如果你设置自动换行模式为FixedPixelWidth或者FixedColumnWidth,你也应该调用setWrapColumnOrWidth()你希望的宽度。

也可以参考WordWrapwrapColumnOrWidthwrapPolicy

通过setWordWrap()设置属性值并且通过wordWrap()来获得属性值。

int wrapColumnOrWidth

这个属性保存的是被自动换行的文本的位置(根据自动换行模式来决定是像素还是列)。

如果自动换行模式为FixedPixelWidth,那么这个值就是从文本编辑左边界开始需要自动换行的象素数量。如果自动换行模式为FixedColumnWidth,那么这个值就是从文本编辑左边界开始需要自动换行的列数。

也可以参考wordWrap

通过setWrapColumnOrWidth()设置属性值并且通过wrapColumnOrWidth()来获得属性值。

WrapPolicy wrapPolicy

这个属性保存的是自动换行策略,在空白符号还是在任何地方。

当自动换行模式不是NoWrap的时候,定义文本在哪里自动换行。可以选择的是AtWhiteSpace(默认)和Anywhere

也可以参考wordWrap

通过setWrapPolicy()设置属性值并且通过wrapPolicy()来获得属性值。


这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。


Copyright © 2002 Trolltech Trademarks 译者:Cavendish
Qt 3.0.5版