Spec-Zone.ru › Qt 5.12

Класс 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

Возвращает форматирование символа, расположенного непосредственно перед курсором позицией(). Если курсор находится в начале непустого блока текста, возвращается форматирование символа, расположенного непосредственно после курсора.

См. также setCharFormat(), insertText() и blockFormat().

void QTextCursor::clearSelection()

Очищает текущую выделенную область, установив якорь в позицию курсора.

Обратите внимание, что это не удаляет текст выделения.

См. также removeSelectedText() и hasSelection().

int QTextCursor::columnNumber() const

Возвращает позицию курсора в строке.

Обратите внимание, что это номер колонки относительно переносимой строки, а не относительно блока (т.е. абзаца).

Вероятно, вам следует вызвать positionInBlock() вместо этого.

Эта функция была введена в Qt 4.2.

См. также positionInBlock().

QTextList *QTextCursor::createList(const QTextListFormat &format)

Создаёт и возвращает новый список с заданным форматом и делает текущий абзац, в котором находится курсор, первой строкой этого списка.

См. также insertList() и currentList().

QTextList *QTextCursor::createList(QTextListFormat::Style style)

Это перегруженная функция.

Создаёт и возвращает новый список с заданным стилем, делая текущий абзац курсора первой строкой списка.

Используемый стиль определяется перечислением QTextListFormat::Style.

См. также insertList() и currentList().

QTextFrame *QTextCursor::currentFrame() const

Возвращает указатель на текущую область. Возвращает nullptr если курсор недействителен.

См. также insertFrame().

QTextList *QTextCursor::currentList() const

Возвращает текущий список, если позиция курсора position() находится внутри блока, являющегося частью списка; в противном случае возвращает nullptr.

См. также insertList() и createList().

QTextTable *QTextCursor::currentTable() const

Возвращает указатель на текущую таблицу, если позиция курсора position() находится внутри блока, являющегося частью таблицы; в противном случае возвращает nullptr.

См. также 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 в текущую позицию.

QTextFrame *QTextCursor::insertFrame(const QTextFrameFormat &format)

Вставляет область с заданным форматом в текущую позицию курсора position(), перемещает позицию курсора position() внутрь области и возвращает область.

Если курсор содержит выделение, всё выделение перемещается внутрь области.

См. также hasSelection().

void QTextCursor::insertHtml(const QString &html)

Вставляет текст html в текущую позицию(). Текст интерпретируется как HTML.

Примечание: При использовании этой функции с таблицей стилей, таблица стилей будет применяться только к текущему блоку в документе. Для применения таблицы стилей по всему документу используйте QTextDocument::setDefaultStyleSheet() вместо этого.

Эта функция была введена в Qt 4.2.

void QTextCursor::insertImage(const QTextImageFormat &format)

Вставляет изображение, определённое форматом, в текущую позицию.

void QTextCursor::insertImage(const QTextImageFormat &format, QTextFrameFormat::Position alignment)

Это перегруженная функция.

Вставляет изображение, определённое заданным форматом, в текущую позицию курсора с указанным выравниванием.

Эта функция была введена в Qt 4.2.

См. также position().

void QTextCursor::insertImage(const QString &name)

Это перегруженная функция.

Удобный метод для вставки изображения с заданным именем в текущую позицию.

QImage img = ...
textDocument->addResource(QTextDocument::ImageResource, QUrl("myimage"), img);
cursor.insertImage("myimage");

void QTextCursor::insertImage(const QImage &image, const QString &name = QString())

Это перегруженная функция.

Удобная функция для вставки заданного изображения с необязательным именем в текущую позицию.

Эта функция была введена в Qt 4.5.

QTextList *QTextCursor::insertList(const QTextListFormat &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

Возвращает абсолютную позицию курсора в документе. Курсор расположен между символами.

Примечание: В данном случае "символы" относятся к строке объектов QChar, т.е. символам Юникода 16 бит, а позиция рассматривается как индекс в этой строке. Это не обязательно соответствует отдельным графемам в системе письма, так как одна графема может быть представлена несколькими символами Юникода, например, в случае пар суррогатов, лингвистических лигатур или диакритических знаков.

См. также setPosition(), movePosition(), anchor() и positionInBlock().

int QTextCursor::positionInBlock() const

Возвращает относительную позицию курсора в блоке. Курсор расположен между символами.

Это эквивалентно position() - block().position().

Примечание: В данном случае "символы" относятся к строке объектов QChar, т.е. символам Юникода 16 бит, а позиция рассматривается как индекс в этой строке. Это не обязательно соответствует отдельным графемам в системе письма, так как одна графема может быть представлена несколькими символами Юникода, например, в случае пар суррогатов, лингвистических лигатур или диакритических знаков.

Эта функция была представлена в 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() вместо этого.

Примечание: Если выделение, полученное из редактора, охватывает символ перевода строки, текст будет содержать символ разделителя абзацев Unicode 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. Курсор позиционируется между символами.

Примечание: В данном случае "символы" относятся к строке объектов QChar, т.е. 16-битным символам Юникода, и pos рассматривается как индекс в этой строке. Это не обязательно соответствует отдельным графемам в системе письма, так как одна графема может быть представлена несколькими символами Юникода, например, в случае пар суррогатов, лигатур или диакритических знаков. Для более универсального подхода к навигации по документу используйте movePosition(), которое будет учитывать фактические границы графем в тексте.

См. также 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/qt-5.12/qtextcursor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API