Класс QTextCursor
Класс QTextCursor предоставляет API для доступа к QTextDocuments и их изменения. Подробнее...
| Заголовок: | #include <QTextCursor> |
| qmake: | QT += gui |
Примечание: Все функции в этом классе являются реентерабельными.
Публичные типы
| Перечисление | MoveMode { MoveAnchor, KeepAnchor } |
| Перечисление | MoveOperation { NoMove, Start, StartOfLine, StartOfBlock, ..., PreviousRow } |
| Перечисление | SelectionType { Document, BlockUnderCursor, LineUnderCursor, WordUnderCursor } |
Публичные функции
| QTextCursor() | |
| QTextCursor(QTextDocument *document) | |
| QTextCursor(QTextFrame *frame) | |
| QTextCursor(const QTextBlock &block) | |
| QTextCursor(const QTextCursor &cursor) | |
| ~QTextCursor() | |
| int | anchor() const |
| bool | atBlockEnd() const |
| bool | atBlockStart() const |
| bool | atEnd() const |
| bool | atStart() const |
| void | beginEditBlock() |
| QTextBlock | block() const |
| QTextCharFormat | blockCharFormat() const |
| QTextBlockFormat | blockFormat() const |
| int | blockNumber() const |
| QTextCharFormat | charFormat() const |
| void | clearSelection() |
| int | columnNumber() const |
| QTextList * | createList(const QTextListFormat &format) |
| QTextList * | createList(QTextListFormat::Style style) |
| QTextFrame * | currentFrame() const |
| QTextList * | currentList() const |
| QTextTable * | currentTable() const |
| void | deleteChar() |
| void | deletePreviousChar() |
| QTextDocument * | document() const |
| void | endEditBlock() |
| bool | hasComplexSelection() const |
| bool | hasSelection() const |
| void | insertBlock() |
| void | insertBlock(const QTextBlockFormat &format) |
| void | insertBlock(const QTextBlockFormat &format, const QTextCharFormat &charFormat) |
| void | insertFragment(const QTextDocumentFragment &fragment) |
| QTextFrame * | insertFrame(const QTextFrameFormat &format) |
| void | insertHtml(const QString &html) |
| void | insertImage(const QTextImageFormat &format) |
| void | insertImage(const QTextImageFormat &format, QTextFrameFormat::Position alignment) |
| void | insertImage(const QString &name) |
| void | insertImage(const QImage &image, const QString &name = QString()) |
| QTextList * | insertList(const QTextListFormat &format) |
| QTextList * | insertList(QTextListFormat::Style style) |
| QTextTable * | insertTable(int rows, int columns, const QTextTableFormat &format) |
| QTextTable * | insertTable(int rows, int columns) |
| void | insertText(const QString &text) |
| void | insertText(const QString &text, const QTextCharFormat &format) |
| bool | isCopyOf(const QTextCursor &other) const |
| bool | isNull() const |
| void | joinPreviousEditBlock() |
| bool | keepPositionOnInsert() const |
| void | mergeBlockCharFormat(const QTextCharFormat &modifier) |
| void | mergeBlockFormat(const QTextBlockFormat &modifier) |
| void | mergeCharFormat(const QTextCharFormat &modifier) |
| bool | movePosition(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = MoveAnchor, int n = 1) |
| int | position() const |
| int | positionInBlock() const |
| void | removeSelectedText() |
| void | select(QTextCursor::SelectionType selection) |
| void | selectedTableCells(int *firstRow, int *numRows, int *firstColumn, int *numColumns) const |
| QString | selectedText() const |
| QTextDocumentFragment | selection() const |
| int | selectionEnd() const |
| int | selectionStart() const |
| void | setBlockCharFormat(const QTextCharFormat &format) |
| void | setBlockFormat(const QTextBlockFormat &format) |
| void | setCharFormat(const QTextCharFormat &format) |
| void | setKeepPositionOnInsert(bool b) |
| void | setPosition(int pos, QTextCursor::MoveMode m = MoveAnchor) |
| void | setVerticalMovementX(int x) |
| void | setVisualNavigation(bool b) |
| void | swap(QTextCursor &other) |
| int | verticalMovementX() const |
| bool | visualNavigation() const |
| bool | operator!=(const QTextCursor &other) const |
| bool | operator<(const QTextCursor &other) const |
| bool | operator<=(const QTextCursor &other) const |
| QTextCursor & | operator=(QTextCursor &&other) |
| QTextCursor & | operator=(const QTextCursor &cursor) |
| bool | operator==(const QTextCursor &other) const |
| bool | operator>(const QTextCursor &other) const |
| bool | operator>=(const QTextCursor &other) const |
Подробное описание
Класс QTextCursor предоставляет API для доступа к и изменения QTextDocuments.
Курсоры текста — это объекты, используемые для доступа к и изменения содержимого и внутренней структуры текстовых документов с помощью интерфейса программирования, имитирующего поведение курсора в текстовом редакторе. QTextCursor содержит информацию о позиции курсора в QTextDocument и произведённом им выборе.
QTextCursor смоделирован по поведению текстового курсора в текстовом редакторе, предоставляя программисту средство для выполнения стандартных действий через пользовательский интерфейс. Документ можно рассматривать как одну длинную строку символов. Текущая позиция курсора (position()) всегда находится между двумя соседними символами в строке или перед первым символом или после последнего символа в строке. Документы также могут содержать таблицы, списки, изображения и другие объекты помимо текста, но с точки зрения разработчика документ можно рассматривать как одну длинную строку. Некоторые части этой строки могут считаться расположенными в определённых блоках (например, абзацах) или в ячейках таблицы, элементах списка или других структурных элементах. Под "текущим символом" понимается символ, расположенный перед позицией курсора (position()) в документе. Аналогично, "текущий блок" — это блок, содержащий позицию курсора (position()).
У QTextCursor также есть позиция якоря (anchor()). Текст, расположенный между позициями якоря (anchor()) и позиции (position()), является выбором. Если anchor() == position(), выбор отсутствует.
Положение курсора можно изменить программно с помощью setPosition() и movePosition(); последнее также можно использовать для выделения текста. Для выбора см. selectionStart(), selectionEnd(), hasSelection(), clearSelection() и removeSelectedText().
Если позиция (position()) находится в начале блока, atBlockStart() возвращает true; а если она находится в конце блока, atBlockEnd() возвращает true. Формат текущего символа возвращается функцией charFormat(), а формат текущего блока — функцией blockFormat().
Форматирование текущего документа можно применить с помощью функций setCharFormat(), mergeCharFormat(), setBlockFormat() и mergeBlockFormat(). Функции "set" заменят текущий формат символа или блока курсора, а функции "merge" добавят свойства заданного формата к текущему формату курсора. Если у курсора есть выбор, заданный формат будет применён к текущему выбору. Обратите внимание, что когда выделена только часть блока, формат блока применяется ко всему блоку. Текст в текущей позиции символа можно преобразовать в список с помощью createList().
Удаление можно выполнить с помощью deleteChar(), deletePreviousChar() и removeSelectedText().
В документ можно вставить текстовые строки с помощью функции insertText(), блоки (представляющие новые абзацы) — с помощью insertBlock().
Существующие фрагменты текста можно вставить с помощью insertFragment(), но если необходимо вставить части текста с различными форматами, обычно проще использовать insertText() и указать формат символа.
В документ также можно вставлять различные типы структур более высокого уровня с помощью курсора:
- Списки — упорядоченные последовательности блочных элементов, оформленных маркерами или символами. Вставляются в указанном формате с помощью insertList().
- Таблицы вставляются с помощью функции insertTable() и могут иметь необязательный формат. Они содержат массив ячеек, по которым можно перемещаться с помощью курсора.
- Встраиваемые изображения вставляются с помощью insertImage(). Использовать можно изображения в формате или по имени.
- Фреймы вставляются вызовом insertFrame() с указанным форматом.
Действия можно сгруппировать (т.е. рассматривать как одно действие для отмены/повторного выполнения) с помощью beginEditBlock() и endEditBlock().
Перемещение курсора ограничено допустимыми позициями курсора. В латинском письме это находится между любыми двумя соседними символами в тексте, перед первым символом или после последнего. В некоторых других системах письма перемещения курсора ограничены "кластерами" (например, слог в деванагари или основная буква плюс диакритические знаки). Функции, такие как movePosition() и deleteChar(), ограничивают перемещение курсора этими допустимыми позициями.
См. также Обработка форматированного текста.
Документация по типам членов
перечисление QTextCursor::MoveMode
| Постоянная | Значение | Описание |
|---|---|---|
QTextCursor::MoveAnchor |
0 |
Перемещает якорь в ту же позицию, что и сам курсор. |
QTextCursor::KeepAnchor |
1 |
Удерживает якорь на месте. |
Если якорь (anchor()) удерживается на месте, а позиция (position()) перемещается, текст между ними будет выделен.
перечисление QTextCursor::MoveOperation
| Постоянная | Значение | Описание |
|---|---|---|
QTextCursor::NoMove |
0 |
Удерживать курсор на месте |
QTextCursor::Start |
1 |
Переместить к началу документа. |
QTextCursor::StartOfLine |
3 |
Переместить к началу текущей строки. |
QTextCursor::StartOfBlock |
4 |
Переместить к началу текущего блока. |
QTextCursor::StartOfWord |
5 |
Переместить к началу текущего слова. |
QTextCursor::PreviousBlock |
6 |
Переместить к началу предыдущего блока. |
QTextCursor::PreviousCharacter |
7 |
Переместить к предыдущему символу. |
QTextCursor::PreviousWord |
8 |
Переместить к началу предыдущего слова. |
QTextCursor::Up |
2 |
Переместить вверх на одну строку. |
QTextCursor::Left |
9 |
Переместить влево на один символ. |
QTextCursor::WordLeft |
10 |
Переместить влево на одно слово. |
QTextCursor::End |
11 |
Переместить к концу документа. |
QTextCursor::EndOfLine |
13 |
Переместить к концу текущей строки. |
QTextCursor::EndOfWord |
14 |
Переместить к концу текущего слова. |
QTextCursor::EndOfBlock |
15 |
Переместить к концу текущего блока. |
QTextCursor::NextBlock |
16 |
Переместить к началу следующего блока. |
QTextCursor::NextCharacter |
17 |
Переместить к следующему символу. |
QTextCursor::NextWord |
18 |
Переместить к следующему слову. |
QTextCursor::Down |
12 |
Переместить вниз на одну строку. |
QTextCursor::Right |
19 |
Переместить вправо на один символ. |
QTextCursor::WordRight |
20 |
Переместить вправо на одно слово. |
QTextCursor::NextCell |
21 |
Переместить к началу следующей ячейки таблицы внутри текущей таблицы. Если текущая ячейка является последней в строке, курсор переместится к первой ячейке следующей строки. |
QTextCursor::PreviousCell |
22 |
Переместить к началу предыдущей ячейки таблицы внутри текущей таблицы. Если текущая ячейка является первой в строке, курсор переместится к последней ячейке предыдущей строки. |
QTextCursor::NextRow |
23 |
Переместить к первой новой ячейке следующей строки в текущей таблице. |
QTextCursor::PreviousRow |
24 |
Переместить к последней ячейке предыдущей строки в текущей таблице. |
См. также movePosition().
enum QTextCursor::SelectionType
Этот перечисление описывает типы выделения, которые могут быть применены с помощью функции select().
| Постоянная | Значение | Описание |
|---|---|---|
QTextCursor::Document |
3 |
Выделяет весь документ. |
QTextCursor::BlockUnderCursor |
2 |
Выделяет блок текста под курсором. |
QTextCursor::LineUnderCursor |
1 |
Выделяет строку текста под курсором. |
QTextCursor::WordUnderCursor |
0 |
Выделяет слово под курсором. Если курсор не расположен внутри строки выбираемых символов, текст не выделяется. |
Документация по функциям-членам
QTextCursor::QTextCursor()
Создаёт пустой курсор.
QTextCursor::QTextCursor(QTextDocument *document)
Создаёт курсор, указывающий на начало документа document.
QTextCursor::QTextCursor(QTextFrame *frame)
Создаёт курсор, указывающий на начало frame.
QTextCursor::QTextCursor(const QTextBlock &block)
Создаёт курсор, указывающий на начало block.
QTextCursor::QTextCursor(const QTextCursor &cursor)
Создаёт новый курсор, являющийся копией cursor.
QTextCursor::~QTextCursor()
Уничтожает QTextCursor.
int QTextCursor::anchor() const
Возвращает позицию якоря; это то же, что и position(), за исключением случаев, когда есть выделение, в этом случае position() отмечает один конец выделения, а anchor() — другой конец. Точно так же, как и позиция курсора, позиция якоря находится между символами.
См. также position(), setPosition(), movePosition(), selectionStart() и selectionEnd().
bool QTextCursor::atBlockEnd() const
Возвращает true, если курсор находится в конце блока; в противном случае возвращает false.
См. также atBlockStart() и atEnd().
bool QTextCursor::atBlockStart() const
Возвращает true, если курсор находится в начале блока; в противном случае возвращает false.
См. также atBlockEnd() и atStart().
bool QTextCursor::atEnd() const
Возвращает true, если курсор находится в конце документа; в противном случае возвращает false.
Эта функция была введена в Qt 4.6.
См. также atStart() и atBlockEnd().
bool QTextCursor::atStart() const
Возвращает true, если курсор находится в начале документа; в противном случае возвращает false.
См. также atBlockStart() и atEnd().
void QTextCursor::beginEditBlock()
Указывает начало блока операций редактирования документа, которые должны отображаться как одна операция с точки зрения отмены/повторного выполнения.
Например:
QTextCursor cursor(textDocument);
cursor.beginEditBlock();
cursor.insertText("Hello");
cursor.insertText("World");
cursor.endEditBlock();
textDocument->undo(); Вызов undo() приведет к отмене обеих вставок, удаляя как "World", так и "Hello".
Возможна вложенность вызовов beginEditBlock и endEditBlock. Верхняя пара определит область действия операции отмены/повторного выполнения.
См. также endEditBlock().
QTextBlock QTextCursor::block() const
Возвращает блок, содержащий курсор.
QTextCharFormat QTextCursor::blockCharFormat() const
Возвращает формат символов блока, в котором находится курсор.
Формат символов блока используется при вставке текста в начале пустого блока.
См. также setBlockCharFormat().
QTextBlockFormat QTextCursor::blockFormat() const
Возвращает формат блока, в котором находится курсор.
См. также setBlockFormat() и charFormat().
int QTextCursor::blockNumber() const
Возвращает номер блока, в котором находится курсор, или 0, если курсор недействителен.
Обратите внимание, что эта функция имеет смысл только в документах без сложных объектов, таких как таблицы или фреймы.
Эта функция была добавлена в Qt 4.2.
QTextCharFormat QTextCursor::charFormat() const
Возвращает форматирование символа, расположенного непосредственно перед позицией курсора position(). Если курсор находится в начале непустого блока текста, возвращает форматирование символа, расположенного сразу после курсора.
См. также setCharFormat(), insertText() и blockFormat().
void QTextCursor::clearSelection()
Очищает текущую выделенную область, установив якорь в позицию курсора.
Обратите внимание, что текст выделения при этом не удаляется.
См. также removeSelectedText() и hasSelection().
int QTextCursor::columnNumber() const
Возвращает позицию курсора в строке.
Обратите внимание, что это номер столбца относительно переносимой строки, а не относительно блока (т. е. абзаца).
Вероятно, вам нужно вызвать positionInBlock() вместо этого.
Эта функция была добавлена в Qt 4.2.
См. также positionInBlock().
QTextList *QTextCursor::createList(const QTextListFormat &format)
Создаёт и возвращает новый список с заданным format и устанавливает текущий абзац, в котором находится курсор, в качестве первого пункта списка.
См. также insertList() и currentList().
QTextList *QTextCursor::createList(QTextListFormat::Style style)
Это перегруженный метод.
Создаёт и возвращает новый список со стилем style, делая текущий абзац курсора первым пунктом списка.
Стиль задаётся перечислением QTextListFormat::Style.
См. также insertList() и currentList().
QTextFrame *QTextCursor::currentFrame() const
Возвращает указатель на текущую область. Возвращает 0, если курсор недействителен.
См. также insertFrame().
QTextList *QTextCursor::currentList() const
Возвращает текущий список, если позиция курсора position() находится внутри блока, являющегося частью списка; в противном случае возвращает 0.
См. также insertList() и createList().
QTextTable *QTextCursor::currentTable() const
Возвращает указатель на текущую таблицу, если позиция курсора position() находится внутри блока, являющегося частью таблицы; в противном случае возвращает 0.
См. также insertTable().
void QTextCursor::deleteChar()
Если текст не выделен, удаляет символ в текущей позиции курсора; в противном случае удаляет выделенный текст.
См. также deletePreviousChar(), hasSelection() и clearSelection().
void QTextCursor::deletePreviousChar()
Если текст не выделен, удаляет символ перед текущей позицией курсора; в противном случае удаляет выделенный текст.
См. также deleteChar(), hasSelection() и clearSelection().
QTextDocument *QTextCursor::document() const
Возвращает документ, с которым связан этот курсор.
Эта функция была добавлена в Qt 4.5.
void QTextCursor::endEditBlock()
Указывает конец блока операций редактирования документа, которые должны отображаться как единая операция с точки зрения отмены/повторного выполнения.
См. также beginEditBlock().
bool QTextCursor::hasComplexSelection() const
Возвращает true если курсор содержит выделение, которое не является просто диапазоном от selectionStart() до selectionEnd(); в противном случае возвращает false.
Сложные выделения — это те, которые охватывают как минимум две ячейки таблицы; их протяжённость задаётся selectedTableCells().
bool QTextCursor::hasSelection() const
Возвращает true если курсор содержит выделение; в противном случае возвращает false.
void QTextCursor::insertBlock()
Вставляет новый пустой блок в позицию курсора position() с текущим blockFormat() и charFormat().
См. также setBlockFormat().
void QTextCursor::insertBlock(const QTextBlockFormat &format)
Это перегруженный метод.
Вставляет новый пустой блок в позицию курсора position() с форматированием блока format и текущим charFormat() как форматированием символов блока.
См. также setBlockFormat().
void QTextCursor::insertBlock(const QTextBlockFormat &format, const QTextCharFormat &charFormat)
Это перегруженный метод.
Вставляет новый пустой блок в позицию курсора position() с форматированием блока format и charFormat как форматированием символов блока.
См. также setBlockFormat().
void QTextCursor::insertFragment(const QTextDocumentFragment &fragment)
Вставляет текст fragment в текущую позицию position().
QTextFrame *QTextCursor::insertFrame(const QTextFrameFormat &format)
Вставляет область с заданным format в текущую позицию курсора position(), перемещает позицию курсора position() внутрь области и возвращает область.
Если курсор содержит выделение, всё выделение перемещается внутрь области.
См. также hasSelection().
void QTextCursor::insertHtml(const QString &html)
Вставляет текст html в текущую позицию position(). Текст интерпретируется как HTML.
Примечание: При использовании этой функции со стилем, стиль будет применяться только к текущему блоку в документе. Для применения стиля по всему документу используйте QTextDocument::setDefaultStyleSheet() вместо этого.
Эта функция была добавлена в Qt 4.2.
void QTextCursor::insertImage(const QTextImageFormat &format)
Вставляет изображение, определённое format, в текущую позицию position().
void QTextCursor::insertImage(const QTextImageFormat &format, QTextFrameFormat::Position alignment)
Это перегруженный метод.
Вставляет изображение, определённое format, в текущую позицию курсора с указанным выравниванием alignment.
Эта функция была добавлена в Qt 4.2.
См. также position().
void QTextCursor::insertImage(const QString &name)
Это перегруженный метод.
Удобный метод для вставки изображения с заданным именем name в текущую позицию position().
QImage img = ...
textDocument->addResource(QTextDocument::ImageResource, QUrl("myimage"), img);
cursor.insertImage("myimage"); void QTextCursor::insertImage(const QImage &image, const QString &name = QString())
Это перегруженный метод.
Удобная функция для вставки заданного изображения image с необязательным именем name в текущую позицию position().
Эта функция была добавлена в Qt 4.5.
QTextList *QTextCursor::insertList(const QTextListFormat &format)
Вставляет новый блок в текущую позицию и делает его первым пунктом списка, созданного с заданным format. Возвращает созданный список.
См. также currentList(), createList() и insertBlock().
QTextList *QTextCursor::insertList(QTextListFormat::Style style)
Это перегруженный метод.
Вставляет новый блок в текущую позицию и делает его первым элементом списка, созданного с заданным стилем style. Возвращает созданный список.
См. также currentList(), createList() и insertBlock().
QTextTable *QTextCursor::insertTable(int rows, int columns, const QTextTableFormat &format)
Создаёт новую таблицу с заданным количеством rows строк и columns столбцов в указанном формате format, вставляет её в текущую позицию курсора position() в документе и возвращает объект таблицы. Курсор перемещается в начало первой ячейки.
Таблица должна содержать хотя бы одну строку и один столбец.
См. также currentTable().
QTextTable *QTextCursor::insertTable(int rows, int columns)
Это перегруженный метод.
Создаёт новую таблицу с заданным количеством rows строк и columns столбцов, вставляет её в текущую позицию курсора position() в документе и возвращает объект таблицы. Курсор перемещается в начало первой ячейки.
Таблица должна содержать хотя бы одну строку и один столбец.
См. также currentTable().
void QTextCursor::insertText(const QString &text)
Вставляет text в текущую позицию, используя текущий формат символов.
Если выделен фрагмент текста, он удаляется и заменяется на text, например:
cursor.clearSelection();
cursor.movePosition(QTextCursor::NextWord, QTextCursor::KeepAnchor);
cursor.insertText("Hello World"); Это очищает любой существующий выделенный фрагмент, выделяет слово в позиции курсора (т.е. от position() вперёд) и заменяет выделение фразой «Hello World».
Любые символы ASCII новой строки (\n) в вставленном тексте преобразуются в разделители блоков Юникода, соответствующие вызовам insertBlock().
См. также charFormat() и hasSelection().
void QTextCursor::insertText(const QString &text, const QTextCharFormat &format)
Это перегруженный метод.
Вставляет text в текущую позицию с заданным format.
bool QTextCursor::isCopyOf(const QTextCursor &other) const
Возвращает true если этот курсор и other являются копиями друг друга, т.е. один из них был создан как копия другого, и ни один из них не перемещался с момента создания копии. Это значительно строже, чем равенство.
См. также operator=() и operator==().
bool QTextCursor::isNull() const
Возвращает true если курсор null; в противном случае возвращает false. Нулевой курсор создаётся конструктором по умолчанию.
void QTextCursor::joinPreviousEditBlock()
Подобно beginEditBlock(), указывает начало блока операций редактирования, которые должны отображаться как единая операция для отмены/повтора. Однако, в отличие от beginEditBlock(), не начинает новый блок, а отменяет предыдущий вызов endEditBlock() и, следовательно, делает последующие операции частью предыдущего блока редактирования.
Например:
QTextCursor cursor(textDocument);
cursor.beginEditBlock();
cursor.insertText("Hello");
cursor.insertText("World");
cursor.endEditBlock();
...
cursor.joinPreviousEditBlock();
cursor.insertText("Hey");
cursor.endEditBlock();
textDocument->undo(); Вызов undo() вызовет отмену всех трёх вставок.
См. также beginEditBlock() и endEditBlock().
bool QTextCursor::keepPositionOnInsert() const
Возвращает, следует ли курсору сохранять текущую позицию при вставке текста в позицию курсора.
По умолчанию false.
Эта функция была добавлена в Qt 4.7.
См. также setKeepPositionOnInsert().
void QTextCursor::mergeBlockCharFormat(const QTextCharFormat &modifier)
Изменяет формат символов блока текущего блока (или всех блоков, включённых в выделение) с помощью формата блока, заданного modifier.
См. также setBlockCharFormat().
void QTextCursor::mergeBlockFormat(const QTextBlockFormat &modifier)
Изменяет формат блока текущего блока (или всех блоков, включённых в выделение) с помощью формата блока, заданного modifier.
См. также setBlockFormat() и blockFormat().
void QTextCursor::mergeCharFormat(const QTextCharFormat &modifier)
Объединяет текущий формат символов курсора с свойствами, описанными в формате modifier. Если курсор имеет выделение, эта функция применяет все свойства, заданные в modifier, ко всем форматам символов, входящим в выделение.
См. также hasSelection() и setCharFormat().
bool QTextCursor::movePosition(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = MoveAnchor, int n = 1)
Перемещает курсор, выполняя заданную operation n раз, используя указанный mode, и возвращает true если все операции были успешно завершены; в противном случае возвращает false.
Например, если эта функция многократно используется для поиска конца следующего слова, она в конечном итоге завершится неудачей, когда будет достигнут конец документа.
По умолчанию операция перемещения выполняется один раз (n = 1).
Если mode равен KeepAnchor, курсор выделяет текст, по которому перемещается. Это эквивалентно действиям пользователя, удерживающего клавишу Shift и перемещающего курсор клавишами со стрелками.
См. также setVisualNavigation().
int QTextCursor::position() const
Возвращает абсолютную позицию курсора в документе. Курсор расположен между символами.
См. также setPosition(), movePosition(), anchor() и positionInBlock().
int QTextCursor::positionInBlock() const
Возвращает относительную позицию курсора в блоке. Курсор расположен между символами.
Эквивалентно position() - block().position().
Эта функция была добавлена в Qt 4.7.
См. также position().
void QTextCursor::removeSelectedText()
Если выделение существует, его содержимое удаляется; в противном случае ничего не происходит.
См. также hasSelection().
void QTextCursor::select(QTextCursor::SelectionType selection)
Выделяет текст в документе в соответствии с заданным selection.
void QTextCursor::selectedTableCells(int *firstRow, int *numRows, int *firstColumn, int *numColumns) const
Если выделение охватывает ячейки таблицы, firstRow заполняется номером первой строки в выделении, firstColumn — номером первого столбца в выделении, а numRows и numColumns — количеством строк и столбцов в выделении. Если выделение не охватывает никаких ячеек таблицы, результаты безопасны, но не определены.
QString QTextCursor::selectedText() const
Возвращает текст текущего выделения (который может быть пустым). Возвращает только текст без информации о форматировании форматированного текста. Если вам нужен фрагмент документа (т.е. отформатированный форматированный текст), используйте selection() вместо этого.
Примечание: Если выделение, полученное от редактора, охватывает разрыв строки, текст будет содержать символ параграфа Юникода U+2029 вместо символа новой строки \n . Используйте QString::replace(), чтобы заменить эти символы на символы новой строки.
QTextDocumentFragment QTextCursor::selection() const
Возвращает текущее выделение (которое может быть пустым) со всей информацией о форматировании. Если вам нужен только выбранный текст (т.е. обычный текст), используйте selectedText() вместо этого.
Примечание: В отличие от QTextDocumentFragment::toPlainText(), selectedText() может включать специальные символы Юникода, такие как QChar::ParagraphSeparator.
См. также QTextDocumentFragment::toPlainText().
int QTextCursor::selectionEnd() const
Возвращает конец выделения или position(), если у курсора нет выделения.
См. также selectionStart(), position() и anchor().
int QTextCursor::selectionStart() const
Возвращает начало выделения или position(), если у курсора нет выделения.
См. также selectionEnd(), position() и anchor().
void QTextCursor::setBlockCharFormat(const QTextCharFormat &format)
Устанавливает формат символов текущего блока (или всех блоков, содержащихся в выделении) в format.
См. также blockCharFormat().
void QTextCursor::setBlockFormat(const QTextBlockFormat &format)
Устанавливает формат блока текущего блока (или всех блоков, содержащихся в выделении) в format.
См. также blockFormat() и mergeBlockFormat().
void QTextCursor::setCharFormat(const QTextCharFormat &format)
Устанавливает текущий формат символов курсора в заданное значение format. Если у курсора есть выделение, заданный format применяется к текущему выделению.
См. также charFormat(), hasSelection() и mergeCharFormat().
void QTextCursor::setKeepPositionOnInsert(bool b)
Определяет, должен ли курсор сохранять текущее положение при вставке текста в текущей позиции курсора.
Если b равно true, курсор сохраняет свое текущее положение при вставке текста в позицию курсора. Если b равно false, курсор перемещается вместе с вставленным текстом.
По умолчанию значение равно false.
Обратите внимание, что курсор всегда перемещается при вставке текста перед текущей позицией курсора, и всегда сохраняет свое положение при вставке текста после текущей позиции курсора.
Эта функция была добавлена в Qt 4.7.
См. также keepPositionOnInsert().
void QTextCursor::setPosition(int pos, QTextCursor::MoveMode m = MoveAnchor)
Перемещает курсор в абсолютную позицию в документе, указанную параметром pos, используя MoveMode метод, заданный параметром m. Курсор позиционируется между символами.
См. также position(), movePosition() и anchor().
void QTextCursor::setVerticalMovementX(int x)
Устанавливает визуальную позицию x для вертикальных перемещений курсора в значение x.
Визуальная позиция x для вертикального перемещения курсора очищается автоматически при горизонтальном перемещении курсора и остается неизменной при вертикальном перемещении курсора. Этот механизм позволяет курсору двигаться вверх и вниз по визуально прямой линии с пропорциональными шрифтами и плавно "перепрыгивать" короткие строки.
Значение -1 означает отсутствие предопределенной позиции x. Оно будет автоматически установлено при следующем перемещении курсора вверх или вниз.
Эта функция была добавлена в Qt 4.7.
См. также verticalMovementX().
void QTextCursor::setVisualNavigation(bool b)
Устанавливает визуальную навигацию в значение b.
Визуальная навигация означает пропуск скрытых абзацев текста. По умолчанию значение равно false.
Эта функция была добавлена в Qt 4.4.
См. также visualNavigation() и movePosition().
void QTextCursor::swap(QTextCursor &other)
Меняет местами текущий экземпляр курсора текста с other. Эта функция очень быстрая и никогда не приводит к ошибке.
Эта функция была добавлена в Qt 5.0.
int QTextCursor::verticalMovementX() const
Возвращает визуальную позицию x для вертикальных перемещений курсора.
Значение -1 означает отсутствие предопределенной позиции x. Оно будет автоматически установлено при следующем перемещении курсора вверх или вниз.
Эта функция была добавлена в Qt 4.7.
См. также setVerticalMovementX().
bool QTextCursor::visualNavigation() const
Возвращает true , если курсор выполняет визуальную навигацию, в противном случае возвращает false.
Визуальная навигация означает пропуск скрытых абзацев текста. По умолчанию значение равно false.
Эта функция была добавлена в Qt 4.4.
См. также setVisualNavigation() и movePosition().
bool QTextCursor::operator!=(const QTextCursor &other) const
Возвращает true , если курсор other находится в другой позиции в документе по сравнению с этим курсором, в противном случае возвращает false.
bool QTextCursor::operator<(const QTextCursor &other) const
Возвращает true , если курсор other расположен позже в документе, чем этот курсор; в противном случае возвращает false.
bool QTextCursor::operator<=(const QTextCursor &other) const
Возвращает true , если курсор other расположен позже или в той же позиции в документе, что и этот курсор; в противном случае возвращает false.
QTextCursor &QTextCursor::operator=(QTextCursor &&other)
Оператор присваивания с перемещением.
QTextCursor &QTextCursor::operator=(const QTextCursor &cursor)
Создает копию cursor и присваивает ее этому QTextCursor. Обратите внимание, что QTextCursor — это класс с неявной совместной ссылкой.
bool QTextCursor::operator==(const QTextCursor &other) const
Возвращает true , если курсор other находится в той же позиции в документе, что и этот курсор, в противном случае возвращает false.
bool QTextCursor::operator>(const QTextCursor &other) const
Возвращает true , если курсор other расположен раньше в документе, чем этот курсор; в противном случае возвращает false.
bool QTextCursor::operator>=(const QTextCursor &other) const
Возвращает true , если курсор other расположен раньше или в той же позиции в документе, что и этот курсор; в противном случае возвращает false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qtextcursor.html