Spec-Zone.ru › Qt 5.15

Класс QTextCursor

Класс QTextCursor предоставляет API для доступа к и изменения QTextDocuments. Подробнее...

Заголовок: #include <QTextCursor>
qmake: QT += gui
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются перевходными.

Публичные типы

Перечисление MoveMode { MoveAnchor, KeepAnchor }
Перечисление MoveOperation { NoMove, Start, StartOfLine, StartOfBlock, StartOfWord, …, PreviousRow }
Перечисление SelectionType { Document, BlockUnderCursor, LineUnderCursor, WordUnderCursor }

Публичные функции

QTextCursor(const QTextCursor &cursor)
QTextCursor(const QTextBlock &block)
QTextCursor(QTextFrame *frame)
QTextCursor(QTextDocument *document)
QTextCursor()
QTextCursor & operator=(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 выделенныйТекст() const
QTextDocumentFragment выделение() const
int конецВыделения() const
int началоВыделения() const
void установитьФорматСимволовБлока(const QTextCharFormat &format)
void установитьФорматБлока(const QTextBlockFormat &format)
void установитьФорматСимвола(const QTextCharFormat &format)
void сохранитьПозициюПриВставке(bool b)
void установитьПозицию(int pos, QTextCursor::MoveMode m = MoveAnchor)
void установитьВертикальноеПеремещениеX(int x)
void установитьВизуальноеПеремещение(bool b)
void поменять(QTextCursor &other)
int вертикальноеПеремещениеX() const
bool визуальноеПеремещение() const
bool operator!=(const QTextCursor &other) const
bool operator<(const QTextCursor &other) const
bool operator<=(const QTextCursor &other) const
bool operator==(const QTextCursor &other) const
bool operator>(const QTextCursor &other) const
bool operator>=(const QTextCursor &other) const

Подробное описание

Курсоры текста — это объекты, которые используются для доступа к содержимому и внутренней структуре текстовых документов с помощью программного интерфейса, имитирующего поведение курсора в текстовом редакторе. QTextCursor содержит информацию как о позиции курсора в QTextDocument, так и о любом выделении, которое он произвел.

QTextCursor смоделирован на поведении текстового курсора в текстовом редакторе, предоставляя программисту возможность выполнять стандартные действия через пользовательский интерфейс. Документ можно представить как одну непрерывную строку символов. Текущая позиция курсора (position()) всегда находится либо между двумя последовательными символами в строке, либо перед первым символом или после последнего. В дополнение к тексту документы могут содержать таблицы, списки, изображения и другие объекты, но с точки зрения разработчика документ можно рассматривать как одну длинную строку. Некоторые части этой строки могут находиться в определённых блоках (например, абзацах), ячейках таблицы, пунктах списка или других структурных элементах. Когда мы говорим о «текущем символе», мы подразумеваем символ, непосредственно перед позицией курсора в документе. Аналогично, «текущий блок» — это блок, содержащий позицию курсора.

QTextCursor также имеет позицию якоря (anchor()). Текст, расположенный между позицией якоря и позицией курсора, представляет собой выделение. Если позиция якоря совпадает с позицией курсора, выделения нет.

Позицию курсора можно изменить программно с помощью setPosition() и movePosition(); последнее также может использоваться для выделения текста. Для работы с выделениями см. selectionStart(), selectionEnd(), hasSelection(), clearSelection() и removeSelectedText().

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

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

перечисление 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().

перечисление QTextCursor::SelectionType

Это перечисление описывает типы выделения, которые могут быть применены с помощью функции select().

Постоянная Значение Описание
QTextCursor::Document 3 Выделяет весь документ.
QTextCursor::BlockUnderCursor 2 Выделяет блок текста под курсором.
QTextCursor::LineUnderCursor 1 Выделяет строку текста под курсором.
QTextCursor::WordUnderCursor 0 Выделяет слово под курсором. Если курсор не расположен внутри строки выбираемых символов, текст не выделяется.

Документация функций-членов

QTextCursor::QTextCursor(const QTextCursor &cursor)

Создает новый курсор, являющийся копией cursor.

QTextCursor::QTextCursor(const QTextBlock &block)

Создает курсор, указывающий на начало блока block.

QTextCursor::QTextCursor(QTextFrame *frame)

Создает курсор, указывающий на начало frame.

QTextCursor::QTextCursor(QTextDocument *document)

Создает курсор, указывающий на начало document.

QTextCursor::QTextCursor()

Создает нулевой курсор.

QTextCursor &QTextCursor::operator=(const QTextCursor &cursor)

Создает копию cursor и присваивает ее этому QTextCursor. Обратите внимание, что QTextCursor — это класс с неявным совместным использованием.

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)

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

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

QTextFrame *QTextCursor::insertFrame(const QTextFrameFormat &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)

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

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

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

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

void QTextCursor::insertImage(const QString &name)

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

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

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)

Создаёт новую таблицу с заданным количеством строк и столбцов в указанном формате, вставляет её в текущую позицию курсора position() в документе и возвращает объект таблицы. Курсор перемещается в начало первой ячейки.

Таблица должна содержать хотя бы одну строку и один столбец.

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

QTextTable *QTextCursor::insertTable(int rows, int columns)

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

Создаёт новую таблицу с заданным количеством строк и столбцов, вставляет её в текущую позицию курсора position() в документе и возвращает объект таблицы. Курсор перемещается в начало первой ячейки.

Таблица должна содержать хотя бы одну строку и один столбец.

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

void QTextCursor::insertText(const QString &text)

Вставляет текст в текущую позицию, используя текущий формат символов.

Если есть выделение, выделение удаляется и заменяется текстом, например:

cursor.clearSelection();
cursor.movePosition(QTextCursor::NextWord, QTextCursor::KeepAnchor);
cursor.insertText("Hello World");

Это очищает любое существующее выделение, выделяет слово в позиции курсора (т.е. от позиции position() вперёд) и заменяет выделение фразой "Hello World".

Любые символы ASCII новой строки (\n) во вставленном тексте преобразуются в разделители блоков Unicode, соответствующие вызовам insertBlock().

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

void QTextCursor::insertText(const QString &text, const QTextCharFormat &format)

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

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

bool QTextCursor::isCopyOf(const QTextCursor &other) const

Возвращает true если этот курсор и other являются копиями друг друга, т.е. один из них был создан как копия другого и ни один из них не перемещался с момента создания. Это значительно строже, чем равенство.

См. также operator=() и operator==().

bool QTextCursor::isNull() const

Возвращает true если курсор пустой; в противном случае возвращает 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-битных символов Unicode, а позиция рассматривается как индекс в этой строке. Это необязательно соответствует отдельным графемам в письменности, так как одна графема может быть представлена несколькими символами Unicode, например, в случае пар суррогатов, лингвистических лигатур или диакритических знаков.

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

int QTextCursor::positionInBlock() const

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

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

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

Эта функция была добавлена в 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() может содержать специальные символы Unicode, такие как 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, используя способ перемещения, указанный m. Курсор устанавливается между символами.

Примечание: В данном случае "символы" относятся к строке объектов QChar, т. е. 16-битных символов Unicode, а pos считается индексом в этой строке. Это не обязательно соответствует отдельным графемам в системе письма, поскольку одна графема может быть представлена несколькими символами Unicode, например, в случае пар суррогатов, лингвистических лигатур или диакритических знаков. Для более универсального подхода к навигации по документу используйте 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.

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.15/qtextcursor.html

Spec-Zone.ru

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