QTextEdit窗口部件提供了强大的单页面的多信息文本编辑器。 详情请见…… #include
被QMultiLineEdit、QTextBrowser和QTextView继承。 所有成员函数的列表。
公有成员
? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
enum WordWrap { NoWrap, WidgetWidth, FixedPixelWidth, FixedColumnWidth }
enum WrapPolicy { AtWordBoundary, Anywhere, AtWhiteSpace = AtWordBoundary }
enum KeyboardAction { ActionBackspace, ActionDelete, ActionReturn, ActionKill }
enum CursorAction { MoveBackward, MoveForward, MoveWordBackward, MoveWordForward, MoveUp, MoveDown, MoveLineStart, MoveLineEnd, MoveHome, MoveEnd, MovePgUp, MovePgDown }
enum VerticalAlignment { AlignNormal, AlignSuperScript, AlignSubScript }
QTextEdit ( const QString & text, const QString & context = QString::null, QWidget * parent = 0, const char * name = 0 )
QTextEdit ( QWidget * parent = 0, const char * name = 0 ) QString text () const
QString text ( int para ) const TextFormat textFormat () const QString context () const
QString documentTitle () const
void getSelection ( int * paraFrom, int * indexFrom, int * paraTo, int * indexTo, int selNum = 0 ) const
virtual bool find ( const QString & expr, bool cs, bool wo, bool forward = TRUE, int * para = 0, int * index = 0 ) int paragraphs () const int lines () const
int linesOfParagraph ( int para ) const int lineOfChar ( int para, int index ) int length () const
QRect paragraphRect ( int para ) const
int paragraphAt ( const QPoint & pos ) const int charAt ( const QPoint & pos, int * para ) const int paragraphLength ( int para ) const
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
QStyleSheet * styleSheet () const
QMimeSourceFactory * mimeSourceFactory () const QBrush paper () const
bool linkUnderline () const
virtual int heightForWidth ( int w ) const bool hasSelectedText () const QString selectedText () const bool isUndoAvailable () const bool isRedoAvailable () const WordWrap wordWrap () const int wrapColumnOrWidth () const WrapPolicy wrapPolicy () const int tabStopWidth () const
QString anchorAt ( const QPoint & pos ) bool isReadOnly () const
void getCursorPosition ( int * para, int * index ) const bool isModified () const bool italic () const bool bold () const
bool underline () const QString family () const int pointSize () const QColor color () const QFont font () const int alignment () const int undoDepth () const
bool isOverwriteMode () const
QColor paragraphBackgroundColor ( int para ) const bool isUndoRedoEnabled () const
公有槽
? ? ? ? ? ? ? ? ? ? ? ?
virtual void setMimeSourceFactory ( QMimeSourceFactory * factory ) virtual void setStyleSheet ( QStyleSheet * styleSheet ) virtual void scrollToAnchor ( const QString & name ) virtual void setPaper ( const QBrush & pap ) virtual void setLinkUnderline ( bool )
virtual void setWordWrap ( WordWrap mode ) virtual void setWrapColumnOrWidth ( int ) virtual void setWrapPolicy ( WrapPolicy policy ) virtual void copy ()
virtual void append ( const QString & text ) void setText ( const QString & txt )
virtual void setText ( const QString & text, const QString & context )
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
virtual void setTextFormat ( TextFormat f ) virtual void selectAll ( bool select = TRUE ) virtual void setTabStopWidth ( int ts ) virtual void zoomIn ( int range ) virtual void zoomIn ()
virtual void zoomOut ( int range ) virtual void zoomOut ()
virtual void zoomTo ( int size ) virtual void setReadOnly ( bool b ) virtual void undo () virtual void redo () virtual void cut () virtual void paste ()
virtual void pasteSubType ( const QCString & subtype ) virtual void clear () virtual void del () virtual void indent ()
virtual void setItalic ( bool b ) virtual void setBold ( bool b )
virtual void setUnderline ( bool b )
virtual void setFamily ( const QString & fontFamily ) virtual void setPointSize ( int s )
virtual void setColor ( const QColor & c )
virtual void setVerticalAlignment ( VerticalAlignment a ) virtual void setAlignment ( int a )
virtual void setCursorPosition ( int para, int index )
virtual void setSelection ( int paraFrom, int indexFrom, int paraTo, int indexTo, int selNum = 0 )
virtual void setSelectionAttributes ( int selNum, const QColor & back, bool invertText )
virtual void setModified ( bool m ) virtual void setUndoDepth ( int d ) virtual void ensureCursorVisible ()
virtual void placeCursor ( const QPoint & pos, QTextCursor * c = 0 ) virtual void moveCursor ( CursorAction action, bool select ) virtual void doKeyboardAction ( KeyboardAction action ) virtual void removeSelectedText ( int selNum = 0 ) virtual void removeSelection ( int selNum = 0 ) virtual void setCurrentFont ( const QFont & f ) virtual void setOverwriteMode ( bool b ) virtual void scrollToBottom ()
virtual void insert ( const QString & text, bool indent = FALSE, bool checkNewLine = TRUE, bool removeSelected = TRUE ) virtual void insertAt ( const QString & text, int para, int index )
? ? ? ? ?
virtual void removeParagraph ( int para )
virtual void insertParagraph ( const QString & text, int para )
virtual void setParagraphBackgroundColor ( int para, const QColor & bg ) virtual void clearParagraphBackground ( int para ) virtual void setUndoRedoEnabled ( bool b )
信号
? ? ? ? ? ? ? ? ? ? ? ? ?
void textChanged ()
void selectionChanged ()
void copyAvailable ( bool yes ) void undoAvailable ( bool yes ) void redoAvailable ( bool yes )
void currentFontChanged ( const QFont & f ) void currentColorChanged ( const QColor & c ) void currentAlignmentChanged ( int a )
void currentVerticalAlignmentChanged ( VerticalAlignment a ) void cursorPositionChanged ( QTextCursor * c ) void cursorPositionChanged ( int para, int pos ) void returnPressed ()
void modificationChanged ( bool m )
属性
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
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 - 自动换行策略,在空白符号还是在任何地方
保护成员
? ? ? ? ? ?
void repaintChanged ()
virtual void keyPressEvent ( QKeyEvent * e ) virtual bool focusNextPrevChild ( bool n ) QTextCursor * textCursor () const
virtual QPopupMenu * createPopupMenu ( const QPoint & pos ) virtual QPopupMenu * createPopupMenu () (obsolete)
详细描述
QTextEdit窗口部件提供了强大的单页面的多信息文本编辑器。 介绍和概念
? 使用QTextEdit作为一个显示窗口部件
o 只读的键绑定
? 使用QTextEdit作为一个编辑器
o 编辑键绑定
?
介绍和概念
QTextEdit是一个高级的所见即所得的支持使用HTML风格标记的多信息文本格式的查看器/编辑器。它对于处理大文档和快速相应用户的输入进行了优化。 QTextEdit操作的三个模式: 模式
命令
注释
一般setTextFormat(PlainText) 使用setText()设置文本,text()可以返回一般文文本本。文本属性(比如颜色)可以被设置,但是一编辑般文本总是被返回。1. 器
多信setTextFormat(RichText) 使用setText()设置文本,text()可以返回多信息文息文本。多信息文本编辑是相当受限制的。例如你不本编能设置边白或者插入图片(尽管你可以读取并且辑器 正确地显示具有边白和包含图片的文件)。这个
模式对于编辑少量的多信息文本是非常有用的。2. 文本setReadOnly(TRUE)
使用setText()或append()(这个没有撤销历史,
查看器3.
所以更快并且使用更少的内存)来设置文本,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()到达 name=\。find()函数可以被用来找到和选择文本中的给定字符串。 只读的QTextEdit提供了和(废弃的)QTextEdit相同的功能。(QTextView仍被提供用来保证旧代码的兼容性。) 只读的键绑定 当QTextEdit被使用的时候,只读的键绑定仅限于浏览,并且文本只能被鼠标选定: 按键 UpArrow 向上移动一行 操作 DownArrow 向下移动一行 LeftArrow 向左移动一个字符 RightArrow 向右移动一个字符 PageUp 向上移动一页(视口) PageDown 向下移动一页(视口) Home End 移动到文本开始处 移动到文本结束处 Shift+Wheel 水平的滚动文本(Wheel就是鼠标滚轮) Ctrl+Wheel 缩放文本 文本编辑也可以提供一些元信息。例如,documentTitle()函数将返回来自HTML的
文本编辑中显示的文本有一个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。
成员函数文档
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()。
例如,如果文本包含一个文本标签
href=\,将会被识别为“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.cpp、network/clientserver/server/server.cpp、network/httpd/httpd.cpp和process/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.cpp和qdir/qdir.cpp。
void QTextEdit::copy () [虚 槽]
复制任何选择文本(从选择区0中)到剪贴板。 也可以参考hasSelectedText和copyAvailable()。
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被找到,返回真,否则返回假。 如果para和index都为零,搜索将从当前光标位置开始。如果para和index全不为零,搜索将从*para段的*index字符位置开始。
如果cs为真,搜索是区分大小写的,否则它是不区分大小写的。如果wo为真,搜索将查找匹配整个单字的,否则它搜索任何匹配的文本。如果forward为真(默认),搜索将从开始位置到文尾进行工作,否则它从开始位置到文首进行工作。 如果expr被找到,函数返回真。如果index和para不为零,被找到的匹配项的第一个字符的段落号被放到*para,并且这个字符在段落中的索引位置被放到*index。
如果expr没有被找到,函数返回假。如果index和para不为零,并且expr没有被找到,*index和*para都是不确定的。
bool QTextEdit::focusNextPrevChild ( bool n ) [虚 保护]
重新实现用来允许链接间移动焦点。如果n为真,tab把焦点移动到下一个子对象,如果n为假,tab把焦点移动到上一个子对象。如果焦点被移动,返回真,否则返回假。
QFont QTextEdit::font () const
返回当前格式的字体。
也可以参考setCurrentFont(), setFamily()和setPointSize()。
实例:action/application.cpp、application/application.cpp、mdi/application.cpp和qwerty/qwerty.cpp。
void QTextEdit::getCursorPosition ( int * para, int * index ) const
这个函数设置*para和*index参数到当前光标位置。para和index必须为非空整形指针。
也可以参考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。 paraFrom、indexFrom、paraTo和indexTo都必须为非空整形指针。 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.cpp和application/application.cpp。
int QTextEdit::linesOfParagraph ( int para ) const
返回para段落的行数,或者如果在para索引没有这个段落,返回-1。
bool QTextEdit::linkUnderline () const
如果超文本链接将显示下划线,返回真,否则返回假。详细情况请参考“linkUnderline”属性。
QMimeSourceFactory * QTextEdit::mimeSourceFactory () const
返回这个文档编辑当前使用的QMimeSourceFactory。 也可以参考setMimeSourceFactory()。
实例:helpviewer/helpwindow.cpp和qdir/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)选择区中的被选定文本(也就是默认选择的文本)。如果没有被选定文本,就什么也没发生。 也可以参考selectedText和removeSelection()。
void QTextEdit::removeSelection ( int selNum = 0 ) [虚 槽]
移除selNum(默认为0)选择区。这不会移除被选定文本。 也可以参考removeSelectedText()。
void QTextEdit::repaintChanged () [保护]
重新绘制任何已经改变的段落。
尽管在内部广泛地使用,但是你也不应该需要自己调用这个函数。
void QTextEdit::returnPressed () [信号]
如果用户按下回车键或者换行键,这个信号被发射。
void QTextEdit::scrollToAnchor ( const QString & name ) [虚 槽]
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 - 这是默认值。文本编辑会自动探测哪一个表现样式更好,PlainText或RichText这个是通过使用QStyleSheet::mightBeRichText()函数完成的。
?
通过setTextFormat()设置属性值并且通过textFormat()来获得属性值。
int undoDepth
这个属性保存的是撤销历史的深度。
也就是撤销/恢复历史中的最大步数。默认为100。 也可以参考undo()和redo()。
通过setUndoDepth()设置属性值并且通过undoDepth()来获得属性值。
bool undoRedoEnabled
这个属性保存的是撤销/恢复是否生效。 默认为真。
通过setUndoRedoEnabled()设置属性值并且通过isUndoRedoEnabled()来得到属性值。
WordWrap wordWrap
这个属性保存的是自动换行模式。
默认模式是WidgetWidth,也就是在文本编辑右边缘的单字将被自动换行。在空白字符处自动换行,保证整个单字不被分割。如果你想在单字内自动换行,请使用setWrapPolicy()。如果你设置自动换行模式为FixedPixelWidth或者
FixedColumnWidth,你也应该调用setWrapColumnOrWidth()你希望的宽度。 也可以参考WordWrap、wrapColumnOrWidth和wrapPolicy。 通过setWordWrap()设置属性值并且通过wordWrap()来获得属性值。
int wrapColumnOrWidth
这个属性保存的是被自动换行的文本的位置(根据自动换行模式来决定是像素还是列)。
如果自动换行模式为FixedPixelWidth,那么这个值就是从文本编辑左边界开始需要自动换行的象素数量。如果自动换行模式为FixedColumnWidth,那么这个值就是从文本编辑左边界开始需要自动换行的列数。 也可以参考wordWrap。
通过setWrapColumnOrWidth()设置属性值并且通过wrapColumnOrWidth()来获得属性值。
WrapPolicy wrapPolicy
这个属性保存的是自动换行策略,在空白符号还是在任何地方。
当自动换行模式不是NoWrap的时候,定义文本在哪里自动换行。可以选择的是AtWhiteSpace(默认)和Anywhere。 也可以参考wordWrap。
通过setWrapPolicy()设置属性值并且通过wrapPolicy()来获得属性值。