QPlainTextEdit 类

QPlainTextEdit 类提供用于编辑和显示纯文本的 Widget。 更多...

头: #include <QPlainTextEdit>
qmake: QT += widgets
Since: Qt 4.4
继承: QAbstractScrollArea

该类在 Qt 4.4 引入。

公共类型

enum LineWrapMode { NoWrap, WidgetWidth }

特性

公共函数

QPlainTextEdit (const QString & text , QWidget * parent = nullptr)
QPlainTextEdit (QWidget * parent = nullptr)
virtual ~QPlainTextEdit ()
QString anchorAt (const QPoint & pos ) const
bool backgroundVisible () const
int blockCount () const
bool canPaste () const
bool centerOnScroll () const
QMenu * createStandardContextMenu ()
QMenu * createStandardContextMenu (const QPoint & position )
QTextCharFormat currentCharFormat () const
QTextCursor cursorForPosition (const QPoint & pos ) const
QRect cursorRect (const QTextCursor & cursor ) const
QRect cursorRect () const
int cursorWidth () const
QTextDocument * document () const
QString documentTitle () const
void ensureCursorVisible ()
QList<QTextEdit::ExtraSelection> extraSelections () const
bool find (const QString & exp , QTextDocument::FindFlags options = QTextDocument::FindFlags())
bool find (const QRegExp & exp , QTextDocument::FindFlags options = QTextDocument::FindFlags())
bool find (const QRegularExpression & exp , QTextDocument::FindFlags options = QTextDocument::FindFlags())
bool isReadOnly () const
bool isUndoRedoEnabled () const
QPlainTextEdit::LineWrapMode lineWrapMode () const
virtual QVariant loadResource (int type , const QUrl & name )
int maximumBlockCount () const
void mergeCurrentCharFormat (const QTextCharFormat & modifier )
void moveCursor (QTextCursor::MoveOperation operation , QTextCursor::MoveMode mode = QTextCursor::MoveAnchor)
bool overwriteMode () const
QString placeholderText () const
void print (QPagedPaintDevice * printer ) const
void setBackgroundVisible (bool visible )
void setCenterOnScroll (bool enabled )
void setCurrentCharFormat (const QTextCharFormat & format )
void setCursorWidth (int width )
void setDocument (QTextDocument * document )
void setDocumentTitle (const QString & title )
void setExtraSelections (const QList<QTextEdit::ExtraSelection> & selections )
void setLineWrapMode (QPlainTextEdit::LineWrapMode mode )
void setMaximumBlockCount (int maximum )
void setOverwriteMode (bool overwrite )
void setPlaceholderText (const QString & placeholderText )
void setReadOnly (bool ro )
void setTabChangesFocus (bool b )
void setTabStopDistance (qreal distance )
void setTextCursor (const QTextCursor & cursor )
void setTextInteractionFlags (Qt::TextInteractionFlags flags )
void setUndoRedoEnabled (bool enable )
void setWordWrapMode (QTextOption::WrapMode policy )
bool tabChangesFocus () const
qreal tabStopDistance () const
QTextCursor textCursor () const
Qt::TextInteractionFlags textInteractionFlags () const
QString toPlainText () const
QTextOption::WrapMode wordWrapMode () const

重实现公共函数

virtual QVariant inputMethodQuery (Qt::InputMethodQuery property ) const override

公共槽

void appendHtml (const QString & html )
void appendPlainText (const QString & text )
void centerCursor ()
void clear ()
void copy ()
void cut ()
void insertPlainText (const QString & text )
void paste ()
void redo ()
void selectAll ()
void setPlainText (const QString & text )
void undo ()
void zoomIn (int range = 1)
void zoomOut (int range = 1)

信号

void blockCountChanged (int newBlockCount )
void copyAvailable (bool yes )
void cursorPositionChanged ()
void modificationChanged (bool changed )
void redoAvailable (bool available )
void selectionChanged ()
void textChanged ()
void undoAvailable (bool available )
void updateRequest (const QRect & rect , int dy )

保护函数

QRectF blockBoundingGeometry (const QTextBlock & block ) const
QRectF blockBoundingRect (const QTextBlock & block ) const
virtual bool canInsertFromMimeData (const QMimeData * source ) const
QPointF contentOffset () const
virtual QMimeData * createMimeDataFromSelection () const
QTextBlock firstVisibleBlock () const
QAbstractTextDocumentLayout::PaintContext getPaintContext () const
virtual void insertFromMimeData (const QMimeData * source )

重实现保护函数

virtual void changeEvent (QEvent * e ) override
virtual void contextMenuEvent (QContextMenuEvent * event ) override
virtual void dragEnterEvent (QDragEnterEvent * e ) override
virtual void dragLeaveEvent (QDragLeaveEvent * e ) override
virtual void dragMoveEvent (QDragMoveEvent * e ) override
virtual void dropEvent (QDropEvent * e ) override
virtual void focusInEvent (QFocusEvent * e ) override
virtual bool focusNextPrevChild (bool next ) override
virtual void focusOutEvent (QFocusEvent * e ) override
virtual void inputMethodEvent (QInputMethodEvent * e ) override
virtual void keyPressEvent (QKeyEvent * e ) override
virtual void keyReleaseEvent (QKeyEvent * e ) override
virtual void mouseDoubleClickEvent (QMouseEvent * e ) override
virtual void mouseMoveEvent (QMouseEvent * e ) override
virtual void mousePressEvent (QMouseEvent * e ) override
virtual void mouseReleaseEvent (QMouseEvent * e ) override
virtual void paintEvent (QPaintEvent * e ) override
virtual void resizeEvent (QResizeEvent * e ) override
virtual void scrollContentsBy (int dx , int dy ) override
virtual void showEvent ( QShowEvent * ) override
virtual void wheelEvent (QWheelEvent * e ) override

详细描述

介绍和概念

QPlainTextEdit 是支持纯文本的高级查看器/编辑器。经优化,能处理大文档和快速响应用户输入。

QPlainText 使用非常相同的技术和概念,如 QTextEdit ,但为纯文本处理进行了优化。

QPlainTextEdit 工作于段落和字符。段落是自动换行以拟合 Widget 宽度的格式化字符串。默认情况下,当读取纯文本时,一个换行符表示一个段落。文档由零个或多个段落组成。段落由硬换行符分隔。段落中的每个字符有其自己的属性 (例如:字体和颜色)。

鼠标光标的形状在 QPlainTextEdit 为 Qt::IBeamCursor 默认情况下。可以改变透过 viewport () 的光标特性。

使用 QPlainTextEdit 作为显示 Widget

设置或替代文本使用 setPlainText () 删除并替换现有文本,把文本传递给 setPlainText ().

插入文本可用使用 QTextCursor 类或使用方便函数 insertPlainText (), appendPlainText () 或 paste ().

默认情况下,文本编辑在空白处自动换行以拟合在文本编辑 Widget 内。 setLineWrapMode () 函数用于指定想要的换行种类, WidgetWidth or NoWrap 若不想要任何换行。若使用自动换行到 Widget 的宽度 WidgetWidth ,可以指定是在空白处断开还是在任何地方断开采用 setWordWrapMode ().

The find () 函数可以用于在文本中查找和选择给定字符串。

若想要限制段落总数在 QPlainTextEdit (例如:在日志查看器中会很有用),可以使用 maximumBlockCount 特性。组合 setMaximumBlockCount () 和 appendPlainText () 把 QPlainTextEdit 转变成高效日志文本查看器。卷动可以减去 centerOnScroll () 特性,使日志查看器甚至更快。文本可以按有限方式被格式化,使用语法高亮 (见下文),或追加 html 格式文本采用 appendHtml ()。尽管 QPlainTextEdit 不支持按表格和浮动渲染复杂富文本,但它支持日志查看器可能需要的基于段落的有限格式化。

只读键绑定

当 QPlainTextEdit 被只读使用时,键绑定仅限于导航,且只可以采用鼠标选择文本:

按键 动作
Qt::UpArrow 向上移动一行。
Qt::DownArrow 向下移动一行。
Qt::LeftArrow 向左移动一字符。
Qt::RightArrow 向右移动一字符。
PageUp 向上移动一 (视口) 页。
PageDown 向下移动一 (视口) 页。
Home 移至文本起始。
End 移至文本末尾。
Alt+Wheel 水平卷动页面 (Wheel 是鼠标滚轮)。
Ctrl+Wheel 缩放文本。
Ctrl+A 选择所有文本。

使用 QPlainTextEdit 作为编辑器

所有信息有关使用 QPlainTextEdit 作为显示 Widget 在此也适用。

文本选择的处理通过 QTextCursor 类,提供创建选择、检索文本内容或删除选定的功能。可以检索对应用户可见光标的对象使用 textCursor () 方法。若想要设置 QPlainTextEdit 选定,仅仅创建一个在 QTextCursor 对象然后使该光标成为可见光标使用 setCursor ()。选定可以被拷贝到剪贴板采用 copy (),或剪切到剪贴板采用 cut ()。可以选择整个文本使用 selectAll ().

QPlainTextEdit 保持 QTextDocument 对象,可以被检索使用 document () 方法。还可以设置自己的文档对象使用 setDocument (). QTextDocument 发射 textChanged () 信号若文本改变,且它还提供 isModified() 函数,返回 true 若文本在加载或采用 false 作为自变量最后调用 setModified 后被修改。此外,它提供撤消和重做方法。

句法高亮

就像 QTextEdit ,QPlainTextEdit 要一起工作与 QSyntaxHighlighter .

编辑键绑定

为编辑而实现的键绑定列表:

按键 动作
Backspace 删除光标左侧字符。
删除 删除光标右侧字符。
Ctrl+C 把选中文本拷贝到剪贴板。
Ctrl+Insert 把选中文本拷贝到剪贴板。
Ctrl+K 删除到行尾。
Ctrl+V 把剪贴板文本粘贴到文本编辑中。
Shift+Insert 把剪贴板文本粘贴到文本编辑中。
Ctrl+X 删除选中文本并把它拷贝到剪贴板。
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 把光标移到文本末尾。
Alt+Wheel 水平卷动页面 (Wheel 是鼠标滚轮)。
Ctrl+Wheel 缩放文本。

要选择 (标记) 文本,在按住 Shift 键的同时按下某一移动击键,例如, Shift+Right Arrow 将选择右侧字符,而 Shift+Ctrl+Right Arrow 将选择右侧单词,等等。

和 QTextEdit 的差异

QPlainTextEdit 是通过使用大多数技术实现的瘦类,背后是 QTextEdit and QTextDocument 。其性能优于 QTextEdit 主要源于使用了不同且简化的文本布局,称为 QPlainTextDocumentLayout 在文本文档 (见 QTextDocument::setDocumentLayout ())。纯文本文档布局不支持表格、嵌入框架,及 将准确像素高度计算,分别替换为逐行、逐段滚动方式 。这使之处理显著更大文档成为可能,且仍然能在实时启用换行的情况下重置编辑器大小。它还可以制作快速日志查看器 (见 setMaximumBlockCount ()).

另请参阅 QTextDocument , QTextCursor , 应用程序范例 , 代码编辑器范例 , 句法高亮范例 ,和 富文本处理 .

成员类型文档编制

enum QPlainTextEdit:: LineWrapMode

常量
QPlainTextEdit::NoWrap 0
QPlainTextEdit::WidgetWidth 1

特性文档编制

backgroundVisible : bool

此特性保持调色板背景在文档区域外是否可见

If set to true, the plain text edit paints the palette background on the viewport area not covered by the text document. Otherwise, if set to false, it won't. The feature makes it possible for the user to visually distinguish between the area of the document, painted with the base color of the palette, and the empty area not covered by any document.

默认为 false。

访问函数:

bool backgroundVisible () const
void setBackgroundVisible (bool visible )

blockCount : const int

此特性保持文档文本块数。

默认情况下,此特性在空文档中包含 1 值。

访问函数:

int blockCount () const

centerOnScroll : bool

此特性保持光标是否应该居中屏幕

If set to true, the plain text edit scrolls the document vertically to make the cursor visible at the center of the viewport. This also allows the text edit to scroll below the end of the document. Otherwise, if set to false, the plain text edit scrolls the smallest amount possible to ensure the cursor is visible. The same algorithm is applied to any new line appended through appendPlainText ().

默认为 false。

访问函数:

bool centerOnScroll () const
void setCenterOnScroll (bool enabled )

另请参阅 centerCursor () 和 ensureCursorVisible ().

cursorWidth : int

此特性指定光标的宽度 (以像素为单位)。默认值为 1。

访问函数:

int cursorWidth () const
void setCursorWidth (int width )

documentTitle : QString

此特性保持剖析自文本的文档标题。

默认情况下,此特性包含空字符串。

访问函数:

QString documentTitle () const
void setDocumentTitle (const QString & title )

lineWrapMode : LineWrapMode

此特性保持换行模式

默认模式为 WidgetWidth 导致单词在文本编辑右边缘换行。换行出现在空白处,保持整个单词完整。若想要换行发生在单词内,使用 setWordWrapMode ().

访问函数:

QPlainTextEdit::LineWrapMode lineWrapMode () const
void setLineWrapMode (QPlainTextEdit::LineWrapMode mode )

maximumBlockCount : int

此特性保持用于文档块的限制。

指定文档可能拥有的最大块数。若采用此特性的指定文档有更多块,则块被移除从文档开头。

文档的负值 (或零值) 指定可能包含无限数量的块。

默认值为 0。

注意:设置此特性会把限制立即应用于文档内容。设置此特性还会禁用撤消重做历史。

访问函数:

int maximumBlockCount () const
void setMaximumBlockCount (int maximum )

overwriteMode : bool

此特性保持由用户键入的文本是否覆盖现有文本

As with many text editors, the plain text editor widget can be configured to insert or overwrite existing text with new text entered by the user.

若此特性为 true , existing text is overwritten, character-for-character by new text; otherwise, text is inserted at the cursor position, displacing existing text.

默认情况下,此特性为 false (新文本不覆写现有文本)。

访问函数:

bool overwriteMode () const
void setOverwriteMode (bool overwrite )

placeholderText : QString

此特性保持编辑器占位符文本

设置此特性将使编辑器显示变灰占位符文本只要 document () 为空。

默认情况下,此特性包含空字符串。

该特性在 Qt 5.3 引入。

访问函数:

QString placeholderText () const
void setPlaceholderText (const QString & placeholderText )

另请参阅 document ().

plainText : QString

此特性获取并设置纯文本编辑器的内容。先前内容被移除,且撤消/重做历史被重置,当设置此特性时。 currentCharFormat () 也被重置,除非 textCursor () 已在文档开头。

默认情况下,对于没有内容的编辑器,此特性包含空字符串。

访问函数:

QString toPlainText () const
void setPlainText (const QString & text )

通知程序信号:

void textChanged ()

readOnly : bool

此特性保持文本编辑是否为只读

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

此特性默认为 false。

访问函数:

bool isReadOnly () const
void setReadOnly (bool ro )

tabChangesFocus : bool

此特性保持是否 Tab 改变聚焦或接受作为输入

In some occasions text edits should not allow the user to input tabulators or change indentation using the Tab key, as this breaks the focus chain. The default is false.

访问函数:

bool tabChangesFocus () const
void setTabChangesFocus (bool b )

tabStopDistance : qreal

此特性保持 Tab (制表符) 停止距离 (以像素为单位)

默认情况下,此特性包含 80 的值。

该特性在 Qt 5.10 引入。

访问函数:

qreal tabStopDistance () const
void setTabStopDistance (qreal distance )

textInteractionFlags : Qt::TextInteractionFlags

指定标签应如何与用户输入交互,若它显示文本。

若标志包含 Qt::LinksAccessibleByKeyboard or Qt::TextSelectableByKeyboard 那么聚焦策略还被自动设为 Qt::ClickFocus .

默认值取决于 QPlainTextEdit 是只读或可编辑。

访问函数:

Qt::TextInteractionFlags textInteractionFlags () const
void setTextInteractionFlags (Qt::TextInteractionFlags flags )

undoRedoEnabled : bool

此特性保持是否启用了撤消和重做

用户才能撤消 (或重做) 动作,若此属性为 true,且存在可以撤消 (或重做) 的动作。

默认情况下,此特性为 true .

访问函数:

bool isUndoRedoEnabled () const
void setUndoRedoEnabled (bool enable )

wordWrapMode : QTextOption::WrapMode

此特性保持模式 QPlainTextEdit 会使用,当按单词换行文本时

默认情况下,此特性被设为 QTextOption::WrapAtWordBoundaryOrAnywhere .

访问函数:

QTextOption::WrapMode wordWrapMode () const
void setWordWrapMode (QTextOption::WrapMode policy )

另请参阅 QTextOption::WrapMode .

成员函数文档编制

QPlainTextEdit:: QPlainTextEdit (const QString & text , QWidget * parent = nullptr)

构造 QPlainTextEdit 采用父级 parent 。文本编辑将显示纯文本 text .

QPlainTextEdit:: QPlainTextEdit ( QWidget * parent = nullptr)

构造空的 QPlainTextEdit 采用父级 parent .

[slot] void QPlainTextEdit:: appendHtml (const QString & html )

追加新段落采用 html 到文本编辑末尾。

appendPlainText ()

[slot] void QPlainTextEdit:: appendPlainText (const QString & text )

追加新段落采用 text 到文本编辑末尾。

另请参阅 appendHtml ().

[signal] void QPlainTextEdit:: blockCountChanged ( int newBlockCount )

此信号被发射每当块计数改变时。新的块计数被传入 newBlockCount .

[slot] void QPlainTextEdit:: centerCursor ()

卷动文档以使光标垂直居中。

另请参阅 ensureCursorVisible () 和 centerOnScroll .

[slot] void QPlainTextEdit:: clear ()

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

注意事项:

另请参阅 cut () 和 setPlainText ().

[slot] void QPlainTextEdit:: copy ()

把任何选中文本拷贝到剪贴板。

另请参阅 copyAvailable ().

[signal] void QPlainTextEdit:: copyAvailable ( bool yes )

此信号被发射当在文本编辑中选择或取消选择文本时。

当有文本被选中时,此信号会被发射采用 yes 设为 true。若没有文本被选中或选中文本被取消选择,此信号被发射采用 yes 设为 false。

yes 为 True 则 copy () 可以用于把选定拷贝到剪贴板。若 yes 为 false 则 copy () 什么都不做。

另请参阅 selectionChanged ().

[signal] void QPlainTextEdit:: cursorPositionChanged ()

此信号被发射每当光标位置改变时。

[slot] void QPlainTextEdit:: cut ()

把选中文本拷贝到剪贴板,并将其从文本编辑中删除。

若没有选中文本,什么都不发生。

另请参阅 copy () 和 paste ().

[slot] void QPlainTextEdit:: insertPlainText (const QString & text )

方便槽插入 text 在当前光标位置。

它相当于

edit->textCursor().insertText(text);
					

[signal] void QPlainTextEdit:: modificationChanged ( bool changed )

此信号被发射每当文档的内容以影响修改状态的方式更改时。若 changed 为 true,文档已被修改;否则它为 false。

例如:调用文档 setModified(false),然后插入文本导致发射信号。若撤消该操作,导致文档返回其原始未修改状态,将再次发射信号。

[slot] void QPlainTextEdit:: paste ()

把剪贴板文本粘贴到文本编辑当前光标位置处。

若剪贴板中没有文本,什么都不发生。

要改变此函数的行为,即,要修改什么 QPlainTextEdit 可以粘贴及如何粘贴,重实现虚拟 canInsertFromMimeData () 和 insertFromMimeData () 函数。

另请参阅 cut () 和 copy ().

[slot] void QPlainTextEdit:: redo ()

重做上一操作。

若没有要重做的操 (即:在撤消/重做历史中没有重做步骤),则什么都不发生。

另请参阅 undo ().

[signal] void QPlainTextEdit:: redoAvailable ( bool available )

此信号被发射,每当重做操作变为可用时 ( available 为 True) 或不可用 ( available 为 false)。

[slot] void QPlainTextEdit:: selectAll ()

选择所有文本。

另请参阅 copy (), cut (),和 textCursor ().

[signal] void QPlainTextEdit:: selectionChanged ()

此信号被发射每当选定改变时。

另请参阅 copyAvailable ().

[slot] void QPlainTextEdit:: setPlainText (const QString & text )

把文本编辑的文本更改为字符串 text 。移除任何以前文本。

text 被解释成纯文本。

注意事项:

注意: setter 函数对于特性 plainText .

另请参阅 toPlainText ().

[signal] void QPlainTextEdit:: textChanged ()

此信号被发射每当文档内容改变时;例如,当插入 (或删除) 文本 (或应用格式) 时。

注意: 通知程序信号对于特性 plainText .

[slot] void QPlainTextEdit:: undo ()

撤消上一操作。

若没有要撤消的操作 (即:撤消/重做历史中没有撤消步骤),什么都不发生。

另请参阅 redo ().

[signal] void QPlainTextEdit:: undoAvailable ( bool available )

此信号被发射每当撤消操作变为可用 ( available 为 True) 或不可用 ( available 为 false)。

[signal] void QPlainTextEdit:: updateRequest (const QRect & rect , int dy )

此信号被发射当文本文档需要更新指定 rect 。若文本被卷动, rect 将覆盖整个视口区域。若文本被垂直卷动, dy 携带视口被卷动的像素数量。

信号的目的是在纯文本编辑子类中支持额外 Widget,如:展示行号、断点或其它额外信息。

[slot] void QPlainTextEdit:: zoomIn ( int range = 1)

放大文本通过使基字体大小 range 点变得更大并将所有字体大小重新计算成新大小。这不会改变任何图像大小。

另请参阅 zoomOut ().

[slot] void QPlainTextEdit:: zoomOut ( int range = 1)

缩小文本通过使基字体大小 range 点变得更小并将所有字体大小重新计算成新大小。这不会改变任何图像大小。

另请参阅 zoomIn ().

[虚拟] QPlainTextEdit:: ~QPlainTextEdit ()

析构函数。

QString QPlainTextEdit:: anchorAt (const QPoint & pos ) const

返回锚点引用在位置 pos ,或空字符串若该点不存在锚点。

该函数在 Qt 4.7 引入。

[protected] QRectF QPlainTextEdit:: blockBoundingGeometry (const QTextBlock & block ) const

返回边界矩形对于文本 block in content coordinates. Translate the rectangle with the contentOffset () to get visual coordinates on the viewport.

另请参阅 firstVisibleBlock () 和 blockBoundingRect ().

[protected] QRectF QPlainTextEdit:: blockBoundingRect (const QTextBlock & block ) const

返回边界矩形对于文本 block 按块自己的坐标。

另请参阅 blockBoundingGeometry ().

[virtual protected] bool QPlainTextEdit:: canInsertFromMimeData (const QMimeData * source ) const

此函数返回 true 若 MIME (多用途 Internet 邮件扩展) 数据对象内容的指定是通过 source , can be decoded and inserted into the document. It is called for example when during a drag operation the mouse enters this widget and it is necessary to determine whether it is possible to accept the drag.

bool QPlainTextEdit:: canPaste () const

返回是否可以把文本从剪贴板粘贴到 textedit。

[override virtual protected] void QPlainTextEdit:: changeEvent ( QEvent * e )

重实现: QFrame::changeEvent (QEvent *ev).

[protected] QPointF QPlainTextEdit:: contentOffset () const

返回视口坐标中的内容原点。

The origin of the content of a plain text edit is always the top left corner of the first visible text block. The content offset is different from (0,0) when the text has been scrolled horizontally, or when the first visible block has been scrolled partially off the screen, i.e. the visible text does not start with the first line of the first visible block, or when the first visible block is the very first block and the editor displays a margin.

另请参阅 firstVisibleBlock (), horizontalScrollBar (),和 verticalScrollBar ().

[override virtual protected] void QPlainTextEdit:: contextMenuEvent ( QContextMenuEvent * event )

重实现: QAbstractScrollArea::contextMenuEvent (QContextMenuEvent *e).

展示标准上下文菜单,创建采用 createStandardContextMenu ().

若不想要文本编辑拥有上下文菜单,可以设置其 contextMenuPolicy to Qt::NoContextMenu 。若想要定制上下文菜单,重实现此函数。若想要扩展标准上下文菜单,重实现此函数,调用 createStandardContextMenu () 并扩展返回菜单。

有关事件信息的传递是在 event 对象。

void MyQPlainTextEdit::contextMenuEvent(QContextMenuEvent *event)
{
    QMenu *menu = createStandardContextMenu();
    menu->addAction(tr("My Menu Item"));
    //...
    menu->exec(event->globalPos());
    delete menu;
}
					

[virtual protected] QMimeData *QPlainTextEdit:: createMimeDataFromSelection () const

此函数返回表示文本编辑当前选定内容的新的 MIME 数据对象。它被调用当需要将选定封装成新的 QMimeData 对象;例如,当开始拖放操作或将数据拷贝到剪贴板时。

若重实现此函数,注意,所有权对于返回的 QMimeData 对象被传递给调用者。可以检索选定通过使用 textCursor () 函数。

QMenu *QPlainTextEdit:: createStandardContextMenu ()

此函数创建要展示的标准上下文菜单,当用户采用鼠标右键点击文本编辑时。它被调用从默认 contextMenuEvent () 处理程序。弹出菜单的所有权会转移给调用者。

推荐使用 createStandardContextMenu( QPoint ) 版本,启用用户点击位置敏感动作。

QMenu *QPlainTextEdit:: createStandardContextMenu (const QPoint & position )

此函数创建要展示的标准上下文菜单,当用户采用鼠标右键点击文本编辑时。它被调用从默认 contextMenuEvent () 处理程序,且它获取 position 在文档坐标中 (当鼠标点击时)。这可以启用用户点击位置敏感动作。弹出菜单的所有权会转移给调用者。

该函数在 Qt 5.5 引入。

QTextCharFormat QPlainTextEdit:: currentCharFormat () const

返回插入新文本时使用的字符格式。

另请参阅 setCurrentCharFormat ().

QTextCursor QPlainTextEdit:: cursorForPosition (const QPoint & pos ) const

返回 QTextCursor 在位置 pos (在视口坐标中)。

QRect QPlainTextEdit:: cursorRect (const QTextCursor & cursor ) const

返回矩形 (在视口坐标中) 包括 cursor .

QRect QPlainTextEdit:: cursorRect () const

返回包括文本编辑光标的矩形 (在视口坐标中)。

QTextDocument *QPlainTextEdit:: document () const

返回底层文档指针。

另请参阅 setDocument ().

[override virtual protected] void QPlainTextEdit:: dragEnterEvent ( QDragEnterEvent * e )

重实现: QAbstractScrollArea::dragEnterEvent (QDragEnterEvent *event).

[override virtual protected] void QPlainTextEdit:: dragLeaveEvent ( QDragLeaveEvent * e )

重实现: QAbstractScrollArea::dragLeaveEvent (QDragLeaveEvent *event).

[override virtual protected] void QPlainTextEdit:: dragMoveEvent ( QDragMoveEvent * e )

重实现: QAbstractScrollArea::dragMoveEvent (QDragMoveEvent *event).

[override virtual protected] void QPlainTextEdit:: dropEvent ( QDropEvent * e )

重实现: QAbstractScrollArea::dropEvent (QDropEvent *event).

void QPlainTextEdit:: ensureCursorVisible ()

通过卷动文本编辑确保光标是可见的,若有必要。

另请参阅 centerCursor () 和 centerOnScroll .

QList < QTextEdit::ExtraSelection > QPlainTextEdit:: extraSelections () const

返回先前设置的额外选定。

另请参阅 setExtraSelections ().

bool QPlainTextEdit:: find (const QString & exp , QTextDocument::FindFlags options = QTextDocument::FindFlags())

查找下一出现为字符串 exp ,使用给定 options 。返回 true if exp 被发现且更改光标到选择匹配;否则返回 false .

bool QPlainTextEdit:: find (const QRegExp & exp , QTextDocument::FindFlags options = QTextDocument::FindFlags())

这是重载函数。

查找匹配正则表达式的下一出现 exp ,使用给定 options QTextDocument::FindCaseSensitively 选项被忽略对于此重载,使用 QRegExp::caseSensitivity 代替。

返回 true 若找到匹配并把光标更改为选择匹配;否则返回 false .

该函数在 Qt 5.3 引入。

bool QPlainTextEdit:: find (const QRegularExpression & exp , QTextDocument::FindFlags options = QTextDocument::FindFlags())

这是重载函数。

查找匹配正则表达式的下一出现 exp ,使用给定 options QTextDocument::FindCaseSensitively 选项被忽略对于此重载,使用 QRegularExpression::CaseInsensitiveOption 代替。

返回 true 若找到匹配并把光标更改为选择匹配;否则返回 false .

该函数在 Qt 5.13 引入。

[protected] QTextBlock QPlainTextEdit:: firstVisibleBlock () const

Returns the first visible block.

另请参阅 blockBoundingRect ().

[override virtual protected] void QPlainTextEdit:: focusInEvent ( QFocusEvent * e )

重实现: QWidget::focusInEvent (QFocusEvent *event).

[override virtual protected] bool QPlainTextEdit:: focusNextPrevChild ( bool next )

重实现: QWidget::focusNextPrevChild (bool next).

[override virtual protected] void QPlainTextEdit:: focusOutEvent ( QFocusEvent * e )

重实现: QWidget::focusOutEvent (QFocusEvent *event).

[protected] QAbstractTextDocumentLayout::PaintContext QPlainTextEdit:: getPaintContext () const

返回描绘上下文为 viewport (),才有用当重实现 paintEvent ().

[override virtual protected] void QPlainTextEdit:: inputMethodEvent ( QInputMethodEvent * e )

重实现: QWidget::inputMethodEvent (QInputMethodEvent *event).

[override virtual] QVariant QPlainTextEdit:: inputMethodQuery ( Qt::InputMethodQuery property ) const

重实现: QWidget::inputMethodQuery (Qt::InputMethodQuery query) const.

[virtual protected] void QPlainTextEdit:: insertFromMimeData (const QMimeData * source )

This function inserts the contents of the MIME data object, specified by source , into the text edit at the current cursor position. It is called whenever text is inserted as the result of a clipboard paste operation, or when the text edit accepts data from a drag and drop operation.

[override virtual protected] void QPlainTextEdit:: keyPressEvent ( QKeyEvent * e )

重实现: QAbstractScrollArea::keyPressEvent (QKeyEvent *e).

[override virtual protected] void QPlainTextEdit:: keyReleaseEvent ( QKeyEvent * e )

重实现: QWidget::keyReleaseEvent (QKeyEvent *event).

[虚拟] QVariant QPlainTextEdit:: loadResource ( int type , const QUrl & name )

加载指定资源通过给定 type and name .

此函数是扩展对于 QTextDocument::loadResource ().

另请参阅 QTextDocument::loadResource ().

void QPlainTextEdit:: mergeCurrentCharFormat (const QTextCharFormat & modifier )

Merges the properties specified in modifier into the current character format by calling QTextCursor::mergeCharFormat on the editor's cursor. If the editor has a selection then the properties of modifier are directly applied to the selection.

另请参阅 QTextCursor::mergeCharFormat ().

[override virtual protected] void QPlainTextEdit:: mouseDoubleClickEvent ( QMouseEvent * e )

重实现: QAbstractScrollArea::mouseDoubleClickEvent (QMouseEvent *e).

[override virtual protected] void QPlainTextEdit:: mouseMoveEvent ( QMouseEvent * e )

重实现: QAbstractScrollArea::mouseMoveEvent (QMouseEvent *e).

[override virtual protected] void QPlainTextEdit:: mousePressEvent ( QMouseEvent * e )

重实现: QAbstractScrollArea::mousePressEvent (QMouseEvent *e).

[override virtual protected] void QPlainTextEdit:: mouseReleaseEvent ( QMouseEvent * e )

重实现: QAbstractScrollArea::mouseReleaseEvent (QMouseEvent *e).

void QPlainTextEdit:: moveCursor ( QTextCursor::MoveOperation operation , QTextCursor::MoveMode mode = QTextCursor::MoveAnchor)

移动光标通过履行给定 operation .

mode is QTextCursor::KeepAnchor ,光标选择由它移动覆盖的文本。这与用户达成的效果相同,当按下 Shift 键和采用光标键移动光标时。

另请参阅 QTextCursor::movePosition ().

[override virtual protected] void QPlainTextEdit:: paintEvent ( QPaintEvent * e )

重实现: QAbstractScrollArea::paintEvent (QPaintEvent *event).

void QPlainTextEdit:: print ( QPagedPaintDevice * printer ) const

方便函数以将文本编辑文档打印到给定 printer 。这相当于在文档上直接调用 print 方法,除此函数还支持 QPrinter::Selection 作为打印范围外。

另请参阅 QTextDocument::print ().

[override virtual protected] void QPlainTextEdit:: resizeEvent ( QResizeEvent * e )

重实现: QAbstractScrollArea::resizeEvent (QResizeEvent *event).

[override virtual protected] void QPlainTextEdit:: scrollContentsBy ( int dx , int dy )

重实现: QAbstractScrollArea::scrollContentsBy (int dx, int dy).

void QPlainTextEdit:: setCurrentCharFormat (const QTextCharFormat & format )

把新文本插入时使用的字符格式设为 format 通过调用 QTextCursor::setCharFormat () 在编辑器光标。若编辑器拥有选定,把字符格式直接应用到选定。

另请参阅 currentCharFormat ().

void QPlainTextEdit:: setDocument ( QTextDocument * document )

使 document 文本编辑器的新文档。

父级 QObject 文档的提供者仍然是对象的所有者。若当前文档是文本编辑器的子级,则将其删除。

文档必须具有文档布局,继承 QPlainTextDocumentLayout (见 QTextDocument::setDocumentLayout ()).

另请参阅 document ().

void QPlainTextEdit:: setExtraSelections (const QList < QTextEdit::ExtraSelection > & selections )

此函数允许采用给定颜色临时标记某些文档区域,指定通过 selections 。例如:这在编程编辑器中可以是有用的,采用给定背景颜色标记整行文本以指示断点的存在。

另请参阅 QTextEdit::ExtraSelection and extraSelections ().

void QPlainTextEdit:: setTextCursor (const QTextCursor & cursor )

设置可见 cursor .

另请参阅 textCursor ().

[override virtual protected] void QPlainTextEdit:: showEvent ( QShowEvent * )

重实现: QWidget::showEvent (QShowEvent *event).

QTextCursor QPlainTextEdit:: textCursor () const

返回副本为 QTextCursor 表示当前可见光标。注意:改变返回光标不影响 QPlainTextEdit 的光标; 使用 setTextCursor () 以更新可见光标。

另请参阅 setTextCursor ().

QString QPlainTextEdit:: toPlainText () const

把文本编辑的文本作为纯文本返回。

注意: getter 函数对于特性 plainText .

另请参阅 QPlainTextEdit::setPlainText ().

[override virtual protected] void QPlainTextEdit:: wheelEvent ( QWheelEvent * e )

重实现: QAbstractScrollArea::wheelEvent (QWheelEvent *e).