Класс QPlainTextEdit
Класс QPlainTextEdit предоставляет виджет для редактирования и отображения простого текста. Подробнее...
| Заголовок: | #include <QPlainTextEdit> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractScrollArea |
Общедоступные типы
| Перечисление | 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 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 | centreCursor() |
| void | очистить() |
| void | копировать() |
| void | вырезать() |
| void | вставитьОбычныйТекст(const QString &text) |
| void | вставить() |
| void | повторить() |
| void | выделитьВсё() |
| void | установитьОбычныйТекст(const QString &text) |
| void | отменить() |
| void | увеличитьМасштаб(int range = 1) |
| void | уменьшитьМасштаб(int range = 1) |
Сигналы
| void | изменилосьКоличествоБлоков(int newBlockCount) |
| void | копированиеДоступно(bool yes) |
| void | изменилосьПоложениеКурсора() |
| void | изменилисьМодификации(bool changed) |
| void | повторениеДоступно(bool available) |
| void | выделениеИзменилось() |
| void | текстИзменился() |
| void | отменаДоступна(bool available) |
| void | запросОбновления(const QRect &rect, int dy) |
Защищенные Функции
| QRectF | геометрияОграничивающегоБлока(const QTextBlock &block) const |
| QRectF | прямоугольникОграничивающегоБлока(const QTextBlock &block) const |
| virtual bool | можноВставитьИзMimeData(const QMimeData *source) const |
| QPointF | смещениеСодержимого() const |
| virtual QMimeData * | создатьMimeDataИзВыделения() const |
| QTextBlock | первыйВидимыйБлок() const |
| QAbstractTextDocumentLayout::PaintContext | получитьКонтекстРисования() const |
| virtual void | вставитьИзMimeData(const QMimeData *source) |
Переопределённые Защищенные Функции
| virtual void | событиеИзменения(QEvent *e) override |
| virtual void | событиеКонтекстногоМеню(QContextMenuEvent *event) override |
| virtual void | событиеВходаПеретаскивания(QDragEnterEvent *e) override |
| virtual void | событиеВыходаПеретаскивания(QDragLeaveEvent *e) override |
| virtual void | событиеДвиженияПеретаскивания(QDragMoveEvent *e) override |
| virtual void | событиеСброса(QDropEvent *e) override |
| virtual void | событиеВходаФокуса(QFocusEvent *e) override |
| virtual bool | фокусСледующегоПредыдущегоПоля(bool next) override |
| virtual void | событиеВыходаФокуса(QFocusEvent *e) override |
| virtual void | событиеМетодаВвода(QInputMethodEvent *e) override |
| virtual void | событиеНажатияКлавиши(QKeyEvent *e) override |
| virtual void | событиеОтпускаКлавиши(QKeyEvent *e) override |
| virtual void | событиеДвойногоНажатияМыши(QMouseEvent *e) override |
| virtual void | событиеДвиженияМыши(QMouseEvent *e) override |
| virtual void | событиеНажатияМыши(QMouseEvent *e) override |
| virtual void | событиеОтпускаМыши(QMouseEvent *e) override |
| virtual void | событиеРисования(QPaintEvent *e) override |
| virtual void | событиеИзмененияРазмер(QResizeEvent *e) override |
| virtual void | сместитьСодержимое(int dx, int dy) override |
| virtual void | событиеОтображения(QShowEvent *) override |
| virtual void | событиеКолесаМыши(QWheelEvent *e) override |
Подробное Описание
Введение и Концепции
QPlainTextEdit — это расширенный просмотрщик/редактор, поддерживающий обычный текст. Он оптимизирован для работы с большими документами и быстрой реакции на пользовательский ввод.
QPlainText использует практически ту же технологию и концепции, что и QTextEdit, но оптимизирован для работы с обычным текстом.
QPlainTextEdit работает с абзацами и символами. Абзац — это форматированная строка, которая переносится на новую строку, чтобы поместиться в ширину виджета. По умолчанию при чтении обычного текста одна новая строка означает новый абзац. Документ состоит из нуля или более абзацев. Абзацы разделены жёсткими разрывами строк. Каждый символ внутри абзаца имеет свои атрибуты, например, шрифт и цвет.
Форма курсора мыши в QPlainTextEdit по умолчанию — Qt::IBeamCursor. Её можно изменить через свойство курсора viewport().
Использование QPlainTextEdit в качестве виджета отображения
Текст устанавливается или заменяется с помощью setPlainText(), который удаляет существующий текст и заменяет его текстом, переданным в setPlainText().
Текст можно вставить, используя класс QTextCursor или используя удобные функции insertPlainText(), appendPlainText() или paste().
По умолчанию редактор текста переносит слова на новую строку при пробеле, чтобы текст поместился в виджете редактора. Функция setLineWrapMode() используется для указания типа переноса на новую строку, WidgetWidth или NoWrap, если вы не хотите никакого переноса. Если вы используете перенос слов по ширине виджета WidgetWidth, вы можете указать, нужно ли разделять по пробелам или в любом месте с помощью setWordWrapMode().
Функция find() может быть использована для поиска и выделения заданной строки в тексте.
Если вы хотите ограничить общее количество абзацев в QPlainTextEdit, например, это полезно в просмотрщике логов, то вы можете использовать свойство maximumBlockCount. Сочетание setMaximumBlockCount() и appendPlainText() превращает QPlainTextEdit в эффективный просмотрщик текстовых логов. Прокрутку можно уменьшить с помощью свойства centerOnScroll(), что сделает просмотрщик логов ещё быстрее. Текст можно форматировать ограниченным образом, либо используя подсветку синтаксиса (см. ниже), или добавляя отформатированный HTML-текст с помощью appendHtml(). Хотя QPlainTextEdit не поддерживает сложное отображение форматированного текста с таблицами и плавающими элементами, он поддерживает ограниченное форматирование абзацев, которое может потребоваться в просмотрщике логов.
Сочетания клавиш в режиме только для чтения
Когда QPlainTextEdit используется в режиме только для чтения, сочетания клавиш ограничены навигацией, и текст можно выделять только с помощью мыши:
| Нажатие клавиш | Действие |
|---|---|
| Qt::UpArrow | Перемещает на строку вверх. |
| Qt::DownArrow | Перемещает на строку вниз. |
| Qt::LeftArrow | Перемещает на один символ влево. |
| Qt::RightArrow | Перемещает на один символ вправо. |
| PageUp | Перемещает на одну страницу вверх. |
| PageDown | Перемещает на одну страницу вниз. |
| Home | Перемещает в начало текста. |
| End | Перемещает в конец текста. |
| Alt+Колёсико мыши | Прокручивает страницу по горизонтали (Колёсико мыши). |
| Ctrl+Колёсико мыши | Изменяет масштаб текста. |
| Ctrl+A | Выделяет весь текст. |
Использование QPlainTextEdit в качестве редактора
Вся информация об использовании QPlainTextEdit в качестве виджета отображения также применима здесь.
Выбор текста обрабатывается классом QTextCursor, который предоставляет функциональность для создания выделений, извлечения содержимого текста или удаления выделений. Вы можете получить объект, соответствующий видимому курсору пользователя, используя метод textCursor(). Если вы хотите установить выделение в QPlainTextEdit, просто создайте его на объекте QTextCursor, а затем сделайте этот курсор видимым курсором, используя setCursor(). Выделение можно скопировать в буфер обмена с помощью copy() или вырезать в буфер обмена с помощью cut(). Весь текст можно выделить, используя selectAll().
QPlainTextEdit содержит объект QTextDocument, который можно получить, используя метод document(). Вы также можете установить свой собственный объект документа, используя setDocument(). QTextDocument генерирует сигнал textChanged(), если текст изменяется, а также предоставляет функцию isModified(), которая возвращает true, если текст был изменен с момента загрузки или с момента последнего вызова setModified с аргументом false. Кроме того, он предоставляет методы отмены и повторения.
Подсветка синтаксиса
Как и QTextEdit, QPlainTextEdit работает вместе с QSyntaxHighlighter.
Сочетания клавиш для редактирования
Список сочетаний клавиш, реализованных для редактирования:
| Нажатие клавиш | Действие |
|---|---|
| Backspace | Удаляет символ слева от курсора. |
| Delete | Удаляет символ справа от курсора. |
| 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+Колёсико мыши | Прокручивает страницу по горизонтали (Колёсико мыши). |
| Ctrl+Колёсико мыши | Изменяет масштаб текста. |
Для выделения текста удерживайте нажатой клавишу Shift, а затем нажмите одну из клавиш перемещения, например, Shift+Right Arrow выделит символ справа, а Shift+Ctrl+Right Arrow выделит слово справа и т. д.
Отличия от QTextEdit
QPlainTextEdit — это тонкий класс, реализованный с использованием большей части технологий, лежащих в основе QTextEdit и QTextDocument. Его преимущества в производительности по сравнению с QTextEdit в основном связаны с использованием другого, упрощенного текстового макета, называемого QPlainTextDocumentLayout, в документе текста (см. QTextDocument::setDocumentLayout()). Макет простого текстового документа не поддерживает таблицы и вложенные фреймы, и заменяет точное вычисление высоты пикселей подходом прокрутки по строкам соответственно абзацам. Это позволяет обрабатывать значительно большие документы, и все же изменять размер редактора с включенным переносом строк в реальном времени. Это также делает его быстрым просмотрщиком логов (см. setMaximumBlockCount()).
См. также QTextDocument, QTextCursor, Qt Widgets - Пример приложения, Пример редактора кода, Пример подсветки синтаксиса и Обработка форматированного текста.
Документация по типам членов
перечисление QPlainTextEdit::LineWrapMode
| Константа | Значение |
|---|---|
QPlainTextEdit::NoWrap |
0 |
QPlainTextEdit::WidgetWidth |
1 |
Документация свойств
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
Это свойство определяет, будет ли вводимый пользователем текст перезаписывать существующий.
Как и во многих текстовых редакторах, текстовый редактор может быть настроен для вставки или перезаписи существующего текста новым текстом, введённым пользователем.
Если это свойство true, существующий текст перезаписывается символом за символом новым текстом; в противном случае текст вставляется в позицию курсора, смещая существующий текст.
По умолчанию это свойство false (новый текст не перезаписывает существующий).
Функции доступа:
| bool | overwriteMode() const |
| void | setOverwriteMode(bool overwrite) |
[since 5.3] 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 фокус или принимается как входной символ.
В некоторых случаях текстовые редакторы не должны позволять пользователю вводить табуляцию или изменять отступы с помощью клавиши Tab, так как это нарушает цепочку фокуса. По умолчанию значение равно false.
Функции доступа:
| bool | tabChangesFocus() const |
| void | setTabChangesFocus(bool b) |
[since 5.10] tabStopDistance : qreal
Это свойство содержит расстояние до отступа табуляции в пикселях.
По умолчанию это свойство содержит значение 80.
Это свойство было добавлено в Qt 5.10.
Функции доступа:
| qreal | tabStopDistance() const |
| void | setTabStopDistance(qreal distance) |
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.
Документация по членам-функциям
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 в конец поля редактирования текста.
[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()
Удаляет весь текст из поля редактирования текста.
Примечания:
- История отмены/повтора также очищается.
- currentCharFormat() сбрасывается, если textCursor() не находится в начале документа.
См. также 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()
Копирует выделенный текст в буфер обмена и удаляет его из поля редактирования текста.
Если текст не выделен, ничего не происходит.
[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().
[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 интерпретируется как обычный текст.
Примечания:
- История отмены/повтора также очищается.
- currentCharFormat() сбрасывается, если textCursor() не находится в начале документа.
Примечание: Функция-установщик для свойства 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 содержит количество пикселей, на которое была прокручена область просмотра.
Цель сигнала — поддержка дополнительных виджетов в подклассах простого текстового редактора, например, для отображения номеров строк, точек останова или другой дополнительной информации.
[slot] void QPlainTextEdit::zoomIn(int range = 1)
Увеличивает масштаб текста, увеличивая базовый размер шрифта на range пунктов и пересчитывая все размеры шрифтов до нового размера. Это не изменяет размер изображений.
См. также zoomOut().
[slot] void QPlainTextEdit::zoomOut(int range = 1)
Уменьшает масштаб текста, уменьшая базовый размер шрифта на range пунктов и пересчитывая все размеры шрифтов до нового размера. Это не изменяет размер изображений.
См. также zoomIn().
[virtual] QPlainTextEdit::~QPlainTextEdit()
Деструктор.
QString QPlainTextEdit::anchorAt(const QPoint &pos) const
Возвращает ссылку на якорную точку в позиции pos или пустую строку, если такой точки нет.
[protected] QRectF QPlainTextEdit::blockBoundingGeometry(const QTextBlock &block) const
Возвращает прямоугольник, охватывающий текст block в координатах содержимого. Для получения визуальных координат в области просмотра преобразуйте прямоугольник с помощью contentOffset().
См. также firstVisibleBlock() и blockBoundingRect().
[protected] QRectF QPlainTextEdit::blockBoundingRect(const QTextBlock &block) const
Возвращает прямоугольник, охватывающий текст block в координатах самого блока.
См. также blockBoundingGeometry().
[virtual protected] bool QPlainTextEdit::canInsertFromMimeData(const QMimeData *source) const
Эта функция возвращает true, если содержимое объекта MIME-данных, заданного параметром source, может быть декодировано и вставлено в документ. Она вызывается, например, при операции перетаскивания, когда курсор мыши попадает в этот виджет, и необходимо определить, можно ли принять перетаскивание.
bool QPlainTextEdit::canPaste() const
Возвращает значение, указывающее, можно ли вставить текст из буфера обмена в текстовый редактор.
[override virtual protected] void QPlainTextEdit::changeEvent(QEvent *e)
Переопределяет: QFrame::changeEvent(QEvent *ev).
[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;
}
[virtual protected] QMimeData *QPlainTextEdit::createMimeDataFromSelection() const
Эта функция возвращает новый объект MIME-данных для представления содержимого текущего выделения в текстовом редакторе. Она вызывается, когда выделение необходимо заключить в новый объект QMimeData; например, при запуске операции перетаскивания или при копировании данных в буфер обмена.
Если вы переопределяете эту функцию, учтите, что владение возвращаемым объектом QMimeData передается вызывающей стороне. Выделение можно получить с помощью функции textCursor().
QMenu *QPlainTextEdit::createStandardContextMenu()
Эта функция создает стандартное контекстное меню, которое отображается, когда пользователь щелкает правой кнопкой мыши в текстовом редакторе. Она вызывается из обработчика contextMenuEvent() по умолчанию. Владение всплывающим меню передаётся вызывающей стороне.
Рекомендуется использовать версию createStandardContextMenu(QPoint), которая позволит активировать действия, чувствительные к месту щелчка пользователя.
[since 5.5] 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 если exp найдена и меняет курсор на выделение совпадения; в противном случае возвращает false.
[since 5.13] 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
Возвращает первый видимый блок.
См. также 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)
Этот метод вставляет содержимое объекта MIME-данных, указанного параметром source, в текстовый редактор в текущей позиции курсора. Вызывается при вставке текста в результате операции вставки из буфера обмена или при приёме данных из операции перетаскивания.
[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)
Объединяет свойства, указанные в modifier, в текущий формат символа, вызвав QTextCursor::mergeCharFormat для курсора редактора. Если в редакторе есть выделение, то свойства modifier напрямую применяются к выделению.
См. также 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 равен 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 и extraSelections().
void QPlainTextEdit::setTextCursor(const QTextCursor &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
Возвращает текст текстового поля в формате простого текста.
Примечание: Функция-получатель для свойства plainText.
См. также QPlainTextEdit::setPlainText().
[override virtual protected] void QPlainTextEdit::wheelEvent(QWheelEvent *e)
Переопределяет: QAbstractScrollArea::wheelEvent(QWheelEvent *e).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qplaintextedit.html