QPlainTextEdit Class
QPlainTextEdit 类提供了一个用于编辑和显示纯文本的 widget。更多
Header: | #include <QPlainTextEdit> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
继承: | QAbstractScrollArea |
- 所有成员(包括继承成员)的列表
- QPlainTextEdit 是富文本处理 API 的一部分。
公共类型
enum | LineWrapMode { NoWrap, WidgetWidth } |
属性
|
|
公共函数
QPlainTextEdit(QWidget *parent = nullptr) | |
QPlainTextEdit(const QString &text, 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 |
QRect | cursorRect(const QTextCursor &cursor) 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 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 可处理段落和字符。段落是一个格式化的字符串,它被单词包裹以适应小工具的宽度。默认情况下,读取纯文本时,一个换行符表示一个段落。文档由零个或多个段落组成。段落之间用硬换行符隔开。段落中的每个字符都有自己的属性,例如字体和颜色。
QPlainTextEdit 上鼠标光标的形状默认为Qt::IBeamCursor 。它可以通过viewport() 的光标属性进行更改。
将 QPlainTextEdit 用作显示部件
文本是通过setPlainText() 设置或替换的,它会删除现有文本并用传给setPlainText() 的文本替换。
文本可以使用QTextCursor 类或方便函数insertPlainText(),appendPlainText() 或paste() 插入。
默认情况下,文本编辑器会在空白处对单词进行包装,以适应文本编辑 widget 的大小。setLineWrapMode() 函数用于指定所需的换行类型,如果不需要换行,则使用WidgetWidth 或NoWrap 。如果使用按 widget 宽度换行WidgetWidth ,则可以使用setWordWrapMode() 指定是在空白处换行还是在任何地方换行。
find() 函数可用于查找和选择文本中的给定字符串。
如果要限制 QPlainTextEdit 中的段落总数(例如在日志查看器中),可以使用maximumBlockCount 属性。setMaximumBlockCount() 和appendPlainText() 的组合使 QPlainTextEdit 成为一个高效的日志文本查看器。使用centerOnScroll() 属性可以减少滚动,使日志查看器的速度更快。文本可以有限的方式格式化,可以使用语法高亮器(见下文),也可以使用appendHtml() 添加 html 格式的文本。虽然 QPlainTextEdit 不支持使用表格和浮点进行复杂的富文本渲染,但它支持日志查看器中可能需要的有限的基于段落的格式化。
只读键绑定
只读使用 QPlainTextEdit 时,按键绑定仅限于导航,只能用鼠标选择文本:
按键 | 操作 |
---|---|
Qt::UpArrow | 上移一行 |
Qt::DownArrow | 向下移动一行 |
Qt::LeftArrow | 向左移动一个字符 |
Qt::RightArrow | 向右移动一个字符。 |
上一页 | 向上移动一页(视口)。 |
下一页 | 向下移动一个(视口)页面。 |
首页 | 移动到文本的起始位置。 |
结束 | 移动到文本的末尾。 |
Alt+ 滚轮 | 水平滚动页面(滚轮即鼠标滚轮)。 |
Ctrl+Wheel | 缩放文本。 |
Ctrl+A | 选择所有文本。 |
将 QPlainTextEdit 用作编辑器
将 QPlainTextEdit 用作显示 widget 的所有信息在此同样适用。
文本的选择由QTextCursor 类处理,该类提供了创建选择、检索文本内容或删除选择的功能。您可以使用textCursor() 方法检索与用户可见光标相对应的对象。如果要在 QPlainTextEdit 中设置一个选区,只需在QTextCursor 对象上创建一个选区,然后使用setCursor() 使该光标成为可见光标。可以使用copy() 将选区复制到剪贴板,或使用cut() 将选区剪切到剪贴板。使用selectAll() 可以选择整个文本。
QPlainTextEdit 持有一个QTextDocument 对象,可以使用document() 方法检索该对象。您也可以使用setDocument() 设置自己的文档对象。如果文本发生变化,QTextDocument 会发出textChanged() 信号,它还提供了一个 isModified() 函数,如果文本在加载后或上次调用以 false 为参数的 setModified 后被修改,该函数将返回 true。此外,它还提供了撤销和重做方法。
语法高亮
与QTextEdit 一样,QPlainTextEdit 可与QSyntaxHighlighter 协同工作。
编辑按键绑定
用于编辑的按键绑定列表:
按键 | 操作 |
---|---|
退格 | 删除光标左侧的字符。 |
删除 | 删除光标右侧的字符。 |
Ctrl+C | 将选中的文本复制到剪贴板。 |
Ctrl+Insert | 将选中的文本复制到剪贴板。 |
Ctrl+K | 删除至行尾。 |
Ctrl+V | 将剪贴板中的文本粘贴到文本编辑器中。 |
Shift+ 插入 | 将剪贴板文本粘贴到文本编辑器中。 |
Ctrl+X | 删除选中的文本并将其复制到剪贴板。 |
Shift+ 删除 | 删除选中的文本并将其复制到剪贴板。 |
Ctrl+Z | 撤销上次操作。 |
Ctrl+Y | 重做上次操作。 |
左箭头 | 将光标向左移动一个字符。 |
Ctrl+LeftArrow | 将光标向左移动一个字。 |
右箭头 | 将光标向右移动一个字符。 |
Ctrl+ 右箭头 | 将光标向右移动一个字符。 |
向上箭头 | 将光标向上移动一行。 |
Ctrl+ 向上箭头 | 将光标向上移动一个字。 |
向下箭头 | 将光标向下移动一行。 |
Ctrl+ 下箭头 | 将光标向下移动一个字。 |
上一页 | 将光标向上移动一页。 |
下一页 | 将光标向下移动一页。 |
首页 | 将光标移至行首。 |
Ctrl+ 主页 | 将光标移至文本开头。 |
结束 | 将光标移至行尾。 |
Ctrl+End | 将光标移至文本末尾。 |
Alt+Wheel | 水平滚动页面(滚轮即鼠标滚轮)。 |
Ctrl+Wheel | 缩放文本。 |
要选择(标记)文本,请按住 Shift 键,同时按下其中一个移动键,例如Shift+Right Arrow将选择右边的字符,Shift+Ctrl+Right Arrow将选择右边的单词,等等。
与 QTextEdit 的区别
QPlainTextEdit 是一个较薄的类,通过使用QTextEdit 和QTextDocument 背后的大部分技术来实现。它在性能上优于QTextEdit ,主要是因为在文本文档上使用了一种不同的简化文本布局,称为QPlainTextDocumentLayout (请参阅QTextDocument::setDocumentLayout() )。纯文本文档布局不支持表格或嵌入式框架,并以逐行逐段的滚动方式取代了精确到像素的高度计算。这样就可以处理大得多的文档,还能在启用换行的情况下实时调整编辑器的大小。这也使得日志查看器更加快速(参见setMaximumBlockCount() )。
{语法高亮示例},{丰富的文本处理}。
另请参见 QTextDocument 和QTextCursor 。
属性文件
backgroundVisible : bool
该属性用于确定调色板背景在文档区域外是否可见。
如果设置为 true,纯文本编辑会在文本文档未覆盖的视口区域绘制调色板背景。否则,如果设置为 false,则不会绘制。该功能可让用户从视觉上区分使用调色板底色绘制的文档区域和未被任何文档覆盖的空白区域。
默认值为 false。
访问功能:
bool | backgroundVisible() const |
void | setBackgroundVisible(bool visible) |
[read-only]
blockCount : const int
该属性表示文档中文本块的数量。
默认情况下,在空文档中,该属性的值为 1。
访问功能:
int | blockCount() const |
centerOnScroll : bool
该属性用于确定光标是否应位于屏幕中心。
如果设置为 true,纯文本编辑器将垂直滚动文档,使光标在视口中心可见。这也允许文本编辑器滚动到文档末尾以下。否则,如果设置为 "false",纯文本编辑会尽可能小地滚动文档,以确保光标可见。同样的算法也适用于通过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
该属性表示用户输入的文本是否会覆盖现有文本。
与许多文本编辑器一样,纯文本编辑器 widget 也可以配置为插入或用用户输入的新文本覆盖现有文本。
如果该属性为true
,现有文本将被新文本逐字覆盖;否则,文本将插入光标位置,取代现有文本。
默认情况下,该属性为false
(新文本不会覆盖现有文本)。
访问功能:
bool | overwriteMode() const |
void | setOverwriteMode(bool overwrite) |
placeholderText : QString
该属性用于保存编辑器占位符文本
设置该属性后,只要document() 为空,编辑器就会显示灰色的占位符文本。
默认情况下,该属性包含一个空字符串。
访问功能:
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 是否会改变焦点或是否被接受为输入内容。
在某些情况下,文本编辑不应允许用户使用Tab 键输入制表符或更改缩进,因为这会破坏焦点链。默认值为 false。
访问功能:
bool | tabChangesFocus() const |
void | setTabChangesFocus(bool b) |
tabStopDistance : qreal
该属性以像素为单位保存制表符停止距离
默认情况下,该属性的值为 80 像素。
请勿设置小于QChar::VisualTabCharacter 字符horizontalAdvance() 的值,否则制表符将绘制不完整。
访问功能:
qreal | tabStopDistance() const |
void | setTabStopDistance(qreal distance) |
另请参见 QTextOption::ShowTabsAndSpaces 和QTextDocument::defaultTextOption 。
textInteractionFlags : Qt::TextInteractionFlags
指定标签在显示文本时与用户输入的交互方式。
如果标记包含Qt::LinksAccessibleByKeyboard 或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 。
成员函数文档
[explicit]
QPlainTextEdit::QPlainTextEdit(QWidget *parent = nullptr)
使用父parent 构建一个空的 QPlainTextEdit。
[explicit]
QPlainTextEdit::QPlainTextEdit(const QString &text, QWidget *parent = nullptr)
构造一个 QPlainTextEdit,其父级parent 。文本编辑器将显示纯文本text 。
[virtual noexcept]
QPlainTextEdit::~QPlainTextEdit()
毁灭者
QString QPlainTextEdit::anchorAt(const QPoint &pos) const
返回位于pos 位置的锚点的引用,如果该位置不存在锚点,则返回空字符串。
[slot]
void QPlainTextEdit::appendHtml(const QString &html)
在文本编辑末尾添加一个新段落(html )。
[slot]
void QPlainTextEdit::appendPlainText(const QString &text)
将带有text 的新段落添加到文本编辑的末尾。
另请参阅 appendHtml()。
[protected]
QRectF QPlainTextEdit::blockBoundingGeometry(const QTextBlock &block) const
以内容坐标返回文本block 的边界矩形。使用contentOffset() 对矩形进行平移,以获得视口中的视觉坐标。
另请参阅 firstVisibleBlock() 和blockBoundingRect()。
[protected]
QRectF QPlainTextEdit::blockBoundingRect(const QTextBlock &block) const
以块自身坐标返回文本block 的边界矩形。
另请参见 blockBoundingGeometry()。
[signal]
void QPlainTextEdit::blockCountChanged(int newBlockCount)
每当块计数发生变化时,就会发出该信号。新的块计数通过newBlockCount 传递。
[virtual protected]
bool QPlainTextEdit::canInsertFromMimeData(const QMimeData *source) const
如果source 所指定的 MIME 数据对象的内容可以解码并插入到文档中,则该函数返回true
。例如,在拖动操作过程中,鼠标进入该 widget 时,需要确定是否可以接受拖动,这时就会调用该函数。
bool QPlainTextEdit::canPaste() const
返回是否可以将文本从剪贴板粘贴到文本编辑器。
[slot]
void QPlainTextEdit::centerCursor()
滚动文档,使光标垂直居中。
另请参阅 ensureCursorVisible() 和centerOnScroll 。
[override virtual protected]
void QPlainTextEdit::changeEvent(QEvent *e)
重实现:QFrame::changeEvent(QEvent *ev)。
[slot]
void QPlainTextEdit::clear()
删除文本编辑器中的所有文本。
备注
- 撤销/重做历史记录也会被清除。
- currentCharFormat除非textCursor() 已经位于文档开头,否则 () 将被重置。
另请参阅 cut() 和setPlainText()。
[protected]
QPointF QPlainTextEdit::contentOffset() const
返回内容在视口坐标中的原点。
纯文本编辑内容的原点总是第一个可见文本块的左上角。如果文本已水平滚动,或第一个可见文本块已部分滚动离开屏幕,即可见文本不是从第一个可见文本块的第一行开始,或第一个可见文本块是第一个文本块且编辑器显示了边距,则内容偏移量与(0,0)不同。
另请参见 firstVisibleBlock()、horizontalScrollBar() 和verticalScrollBar()。
[override virtual protected]
void QPlainTextEdit::contextMenuEvent(QContextMenuEvent *event)
重实现:QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e)。
显示用createStandardContextMenu() 创建的标准上下文菜单。
如果不希望文本编辑器有上下文菜单,可以将其contextMenuPolicy 设置为Qt::NoContextMenu 。如果想自定义上下文菜单,请重新实现此函数。如果要扩展标准上下文菜单,请重新实现该函数,调用createStandardContextMenu() 并扩展返回的菜单。
有关事件的信息将在event 对象中传递。
void MyQPlainTextEdit::contextMenuEvent(QContextMenuEvent *event) { QMenu *menu = createStandardContextMenu(); menu->addAction(tr("My Menu Item")); //... menu->exec(event->globalPos()); delete menu; }
[slot]
void QPlainTextEdit::copy()
将选中的文本复制到剪贴板。
另请参阅 copyAvailable().
[signal]
void QPlainTextEdit::copyAvailable(bool yes)
在文本编辑器中选中或取消选中文本时会发出该信号。
当文本被选中时,该信号将在yes 设置为 true 时发出。如果没有文本被选中或选中的文本被取消选中,则会发出此信号,同时yes 设置为 false。
如果yes 为 true,则可以使用copy() 将选中内容复制到剪贴板。如果yes 为假,则copy() 不会执行任何操作。
另请参见 selectionChanged()。
[virtual protected]
QMimeData *QPlainTextEdit::createMimeDataFromSelection() const
该函数返回一个新的 MIME 数据对象,用于表示文本编辑器当前选区的内容。当需要将选择内容封装到一个新的QMimeData 对象时,例如,当开始拖放操作或将数据复制到剪贴板时,就会调用该函数。
如果重新实现该函数,请注意返回的QMimeData 对象的所有权将传递给调用者。可以使用textCursor() 函数检索选区。
QMenu *QPlainTextEdit::createStandardContextMenu()
该函数用于创建标准上下文菜单,当用户用鼠标右键单击文本编辑器时,菜单就会显示出来。该函数从默认的contextMenuEvent() 处理程序中调用。弹出菜单的所有权将转移给调用者。
我们建议您使用 createStandardContextMenu(QPoint) 版本,它将启用对用户点击位置敏感的操作。
QMenu *QPlainTextEdit::createStandardContextMenu(const QPoint &position)
该函数用于创建标准上下文菜单,当用户用鼠标右键单击文本编辑器时,菜单就会显示出来。它从默认的contextMenuEvent() 处理程序中调用,并以文档坐标中鼠标点击的位置为position 。这样就可以执行对用户点击位置敏感的操作。弹出菜单的所有权将转移给调用者。
QTextCharFormat QPlainTextEdit::currentCharFormat() const
返回插入新文本时使用的字符格式。
另请参阅 setCurrentCharFormat()。
QTextCursor QPlainTextEdit::cursorForPosition(const QPoint &pos) const
返回QTextCursor ,位置为pos (视口坐标)。
[signal]
void QPlainTextEdit::cursorPositionChanged()
每当光标位置发生变化时,就会发出该信号。
QRect QPlainTextEdit::cursorRect() const
返回一个包含文本编辑光标的矩形(以视口坐标表示)。
QRect QPlainTextEdit::cursorRect(const QTextCursor &cursor) const
返回一个包含cursor 的矩形(以视口坐标表示)。
[slot]
void QPlainTextEdit::cut()
将选中的文本复制到剪贴板,并从文本编辑器中删除。
如果没有选定文本,则不会发生任何操作。
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())
使用给定的options 查找字符串exp 的下一次出现。如果找到exp ,则返回true
,并更改光标以选择匹配项;否则返回false
。
bool QPlainTextEdit::find(const QRegularExpression &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())
这是一个重载函数。
使用给定的options 查找与正则表达式exp 匹配的下一次出现。
如果找到匹配项,则返回true
,并更改光标以选择匹配项;否则返回false
。
警告: 由于历史原因,在exp 上设置的大小写敏感性选项将被忽略。相反,将使用options 来确定搜索是否区分大小写。
[protected]
QTextBlock QPlainTextEdit::firstVisibleBlock() const
返回第一个可见区块。
另请参见 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)
该函数将source 指定的 MIME 数据对象的内容插入当前光标位置的文本编辑器中。当插入的文本是剪贴板粘贴操作的结果,或文本编辑器接受了拖放操作的数据时,都会调用该函数。
[slot]
void QPlainTextEdit::insertPlainText(const QString &text)
在当前光标位置插入text 的方便槽。
它等同于
edit->textCursor().insertText(text);
[override virtual protected]
void QPlainTextEdit::keyPressEvent(QKeyEvent *e)
重实现:QAbstractScrollArea::keyPressEvent(QKeyEvent *e)。
[override virtual protected]
void QPlainTextEdit::keyReleaseEvent(QKeyEvent *e)
重实现:QWidget::keyReleaseEvent(QKeyEvent *event).
[virtual]
QVariant QPlainTextEdit::loadResource(int type, const QUrl &name)
加载由给定的type 和name 指定的资源。
该函数是QTextDocument::loadResource() 的扩展。
另请参阅 QTextDocument::loadResource()。
void QPlainTextEdit::mergeCurrentCharFormat(const QTextCharFormat &modifier)
通过在编辑器光标上调用QTextCursor::mergeCharFormat ,将modifier 中指定的属性合并到当前字符格式中。如果编辑器有选区,则modifier 的属性会直接应用于选区。
另请参见 QTextCursor::mergeCharFormat().
[signal]
void QPlainTextEdit::modificationChanged(bool changed)
每当文档内容发生影响修改状态的变化时,就会发出该信号。如果changed 为 true,则表示文档已被修改;否则为 false。
例如,在文档上调用 setModified(false),然后插入文本,就会触发该信号。如果撤销该操作,使文档返回到原始的未修改状态,则信号将再次发出。
[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 是QTextCursor::KeepAnchor ,则光标会选择其移动过的文本。这与用户按住 Shift 键并使用光标键移动光标时的效果相同。
另请参阅 QTextCursor::movePosition() 。
[override virtual protected]
void QPlainTextEdit::paintEvent(QPaintEvent *e)
重实现:QAbstractScrollArea::paintEvent(QPaintEvent *event).
[slot]
void QPlainTextEdit::paste()
将剪贴板中的文本粘贴到当前光标位置的文本编辑器中。
如果剪贴板中没有文本,则不会发生任何操作。
要改变该函数的行为,即修改QPlainTextEdit 可以粘贴的内容和粘贴方式,请重新实现虚拟的canInsertFromMimeData() 和insertFromMimeData() 函数。
void QPlainTextEdit::print(QPagedPaintDevice *printer) const
方便函数,用于将文本编辑器的文档打印到给定的printer 。这等同于直接调用文档的打印方法,只是该函数还支持将 QPrinter::Selection 作为打印范围。
另请参阅 QTextDocument::print() 。
[slot]
void QPlainTextEdit::redo()
重做最后一个操作。
如果没有要重做的操作,即撤销/重做历史中没有重做步骤,则不会发生任何操作。
另请参见 undo()。
[signal]
void QPlainTextEdit::redoAvailable(bool available)
每当重做操作可用(available 为 true)或不可用(available 为 false)时,都会发出该信号。
[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)。
[slot]
void QPlainTextEdit::selectAll()
选择所有文本。
另请参阅 copy()、cut() 和textCursor()。
[signal]
void QPlainTextEdit::selectionChanged()
每当选择发生变化时,就会发出该信号。
另请参见 copyAvailable().
void QPlainTextEdit::setCurrentCharFormat(const QTextCharFormat &format)
通过在编辑器光标上调用QTextCursor::setCharFormat() 设置插入新文本到format 时使用的字符格式。如果编辑器有选区,则字符格式将直接应用于选区。
另请参阅 currentCharFormat()。
void QPlainTextEdit::setDocument(QTextDocument *document)
使document 成为文本编辑器的新文档。
所提供文档的父QObject 仍然是该对象的所有者。如果当前文档是文本编辑器的子文档,则该文档将被删除。
该文档的文档布局必须继承QPlainTextDocumentLayout (请参阅QTextDocument::setDocumentLayout() )。
另请参阅 document()。
void QPlainTextEdit::setExtraSelections(const QList<QTextEdit::ExtraSelection> &selections)
该函数允许在文档中使用指定颜色临时标记某些区域,指定颜色为selections 。例如,在编程编辑器中,可以用给定的背景颜色标记整行文本,以表示存在断点。
另请参阅 QTextEdit::ExtraSelection 和extraSelections() 。
[slot]
void QPlainTextEdit::setPlainText(const QString &text)
将文本编辑器的文本更改为字符串text 。之前的文本将被删除。
text 被解释为纯文本。
备注
- 撤销/重做历史记录也会被清除。
- currentCharFormat() 将被重置,除非textCursor() 已经位于文档开头。
注: plainText 属性的设置函数。
另请参阅 toPlainText()。
void QPlainTextEdit::setTextCursor(const QTextCursor &cursor)
设置可见cursor 。
另请参阅 textCursor() 。
[override virtual protected]
void QPlainTextEdit::showEvent(QShowEvent *)
重实现:QWidget::showEvent(QShowEvent *event).
[signal]
void QPlainTextEdit::textChanged()
当文档内容发生变化时,例如插入或删除文本或应用格式化时,就会发出该信号。
注: 属性plainText 的通知信号。
QTextCursor QPlainTextEdit::textCursor() const
返回代表当前可见游标的QTextCursor 的副本。请注意,返回游标的更改不会影响QPlainTextEdit 的游标;请使用setTextCursor() 更新可见游标。
另请参阅 setTextCursor() 。
QString QPlainTextEdit::toPlainText() const
返回纯文本编辑文本。
注: 属性plainText 的获取函数。
另请参阅 QPlainTextEdit::setPlainText().
[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 会显示视口滚动的像素数。
该信号的目的是支持纯文本编辑子类中的额外部件,例如显示行号、断点或其他额外信息。
[override virtual protected]
void QPlainTextEdit::wheelEvent(QWheelEvent *e)
重实现:QAbstractScrollArea::wheelEvent(QWheelEvent *e)。
[slot]
void QPlainTextEdit::zoomIn(int range = 1)
通过将基本字体大小range 点放大,并将所有字体大小重新计算为新大小,从而放大文本。这不会改变任何图像的大小。
另请参见 zoomOut()。
[slot]
void QPlainTextEdit::zoomOut(int range = 1)
通过缩小基本字体大小range 点,并将所有字体大小重新计算为新大小,从而缩小文本。这不会改变任何图像的大小。
另请参见 zoomIn()。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.