Spec-Zone.ru › Qt 6.1

Класс QTextCursor

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

Заголовок: #include <QTextCursor>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
  • Список всех членов, включая унаследованные

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

Открытые типы

Перечисление РежимПеремещения { ПеремещениеЯкоря, СохранениеЯкоря }
Перечисление ОперацияПеремещения { БезПеремещения, Начало, НачалоСтроки, НачалоБлока, НачалоСлова, …, ПредыдущаяСтрока }
Перечисление ТипВыделения { Документ, БлокПодКурсором, СтрокаПодКурсором, СловоПодКурсором }

Открытые функции

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().

enum 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.

См. также 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, если курсор недействителен.

Обратите внимание, что эта функция имеет смысл только в документах без сложных объектов, таких как таблицы или фреймы.

QTextCharFormat QTextCursor::charFormat() const

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

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

void QTextCursor::clearSelection()

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

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

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

int QTextCursor::columnNumber() const

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

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

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

См. также 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

Возвращает указатель на текущий фрейм. Возвращает 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

Возвращает документ, с которым связан этот курсор.

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() вместо этого.

void QTextCursor::insertImage(const QTextImageFormat &format)

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

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

Это перегруженный метод.

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

См. также 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().

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

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

См. также currentList(), createList(), и insertBlock().

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

Вставляет 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 в текущую позицию с заданным форматом.

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;

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

См. также 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.

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

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

void QTextCursor::setPosition(int pos, QTextCursor::MoveMode m = MoveAnchor)

Перемещает курсор в абсолютную позицию в документе, указанную pos, используя MoveMode режим, заданный m. Курсор позиционируется между символами.

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

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

void QTextCursor::setVerticalMovementX(int x)

Устанавливает визуальное положение x для вертикальных перемещений курсора в x.

Вертикальное положение перемещения x автоматически сбрасывается при горизонтальном перемещении курсора и остается неизменным при вертикальном перемещении. Этот механизм позволяет курсору перемещаться вверх и вниз по визуальной прямой линии с пропорциональными шрифтами и плавно «перескакивать» короткие строки.

Значение -1 указывает на отсутствие предварительно заданного положения x. Оно будет установлено автоматически при следующем перемещении курсора вверх или вниз.

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

void QTextCursor::setVisualNavigation(bool b)

Устанавливает визуальную навигацию в b.

Визуальная навигация означает пропуск скрытых абзацев текста. По умолчанию значение равно false.

См. также visualNavigation() и movePosition().

[since 5.0] void QTextCursor::swap(QTextCursor &other)

Меняет местами экземпляр этого текстового курсора с other. Эта функция очень быстрая и никогда не терпит неудач.

Эта функция была представлена в Qt 5.0.

int QTextCursor::verticalMovementX() const

Возвращает визуальное положение x для вертикальных перемещений курсора.

Значение -1 указывает на отсутствие предварительно заданного положения x. Оно будет установлено автоматически при следующем перемещении курсора вверх или вниз.

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

bool QTextCursor::visualNavigation() const

Возвращает true если курсор выполняет визуальную навигацию; в противном случае возвращает false.

Визуальная навигация означает пропуск скрытых абзацев текста. По умолчанию значение равно false.

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

Spec-Zone.ru

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