QTextDocument Class
La clase QTextDocument contiene texto formateado. Más...
| Cabecera: | #include <QTextDocument> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Hereda: | QObject |
- Lista de todos los miembros, incluyendo los heredados
- QTextDocument es parte de las APIs de Procesamiento de Texto Enriquecido.
Nota: Todas las funciones de esta clase son reentrantes.
Tipos Públicos
| enum | FindFlag { FindBackward, FindCaseSensitively, FindWholeWords } |
| flags | FindFlags |
| enum | MarkdownFeature { MarkdownNoHTML, MarkdownDialectCommonMark, MarkdownDialectGitHub } |
| flags | MarkdownFeatures |
| enum | MetaInformation { DocumentTitle, DocumentUrl, CssMedia, FrontMatter } |
(since 6.1) | ResourceProvider |
| enum | ResourceType { UnknownResource, HtmlResource, ImageResource, StyleSheetResource, MarkdownResource, UserResource } |
| enum | Stacks { UndoStack, RedoStack, UndoAndRedoStacks } |
Propiedades
|
|
Funciones públicas
| QTextDocument(QObject *parent = nullptr) | |
| QTextDocument(const QString &text, QObject *parent = nullptr) | |
| virtual | ~QTextDocument() |
| void | addResource(int type, const QUrl &name, const QVariant &resource) |
| void | adjustSize() |
| QList<QTextFormat> | allFormats() const |
| int | availableRedoSteps() const |
| int | availableUndoSteps() const |
| QUrl | baseUrl() const |
(since 6.0) qreal | baselineOffset() const |
| QTextBlock | begin() const |
| int | blockCount() const |
| QChar | characterAt(int pos) const |
| int | characterCount() const |
| virtual void | clear() |
| void | clearUndoRedoStacks(QTextDocument::Stacks stacksToClear = UndoAndRedoStacks) |
| QTextDocument * | clone(QObject *parent = nullptr) const |
| Qt::CursorMoveStyle | defaultCursorMoveStyle() const |
| QFont | defaultFont() const |
| QString | defaultStyleSheet() const |
| QTextOption | defaultTextOption() const |
| QAbstractTextDocumentLayout * | documentLayout() const |
| qreal | documentMargin() const |
| void | drawContents(QPainter *p, const QRectF &rect = QRectF()) |
| QTextBlock | end() const |
| QTextCursor | find(const QRegularExpression &expr, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const |
| QTextCursor | find(const QRegularExpression &expr, int from = 0, QTextDocument::FindFlags options = FindFlags()) const |
| QTextCursor | find(const QString &subString, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const |
| QTextCursor | find(const QString &subString, int position = 0, QTextDocument::FindFlags options = FindFlags()) const |
| QTextBlock | findBlock(int pos) const |
| QTextBlock | findBlockByLineNumber(int lineNumber) const |
| QTextBlock | findBlockByNumber(int blockNumber) const |
| QTextBlock | firstBlock() const |
| qreal | idealWidth() const |
| qreal | indentWidth() const |
| bool | isEmpty() const |
| bool | isLayoutEnabled() const |
| bool | isModified() const |
| bool | isRedoAvailable() const |
| bool | isUndoAvailable() const |
| bool | isUndoRedoEnabled() const |
| QTextBlock | lastBlock() const |
| int | lineCount() const |
| void | markContentsDirty(int position, int length) |
| int | maximumBlockCount() const |
| QString | metaInformation(QTextDocument::MetaInformation info) const |
| QTextObject * | object(int objectIndex) const |
| QTextObject * | objectForFormat(const QTextFormat &f) const |
| int | pageCount() const |
| QSizeF | pageSize() const |
| void | print(QPagedPaintDevice *printer) const |
| void | redo(QTextCursor *cursor) |
| QVariant | resource(int type, const QUrl &name) const |
(since 6.1) QTextDocument::ResourceProvider | resourceProvider() const |
| int | revision() const |
| QTextFrame * | rootFrame() const |
| void | setBaseUrl(const QUrl &url) |
(since 6.0) void | setBaselineOffset(qreal baseline) |
| void | setDefaultCursorMoveStyle(Qt::CursorMoveStyle style) |
| void | setDefaultFont(const QFont &font) |
| void | setDefaultStyleSheet(const QString &sheet) |
| void | setDefaultTextOption(const QTextOption &option) |
| void | setDocumentLayout(QAbstractTextDocumentLayout *layout) |
| void | setDocumentMargin(qreal margin) |
| void | setHtml(const QString &html) |
| void | setIndentWidth(qreal width) |
| void | setLayoutEnabled(bool b) |
| void | setMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) |
| void | setMaximumBlockCount(int maximum) |
| void | setMetaInformation(QTextDocument::MetaInformation info, const QString &string) |
| void | setPageSize(const QSizeF &size) |
| void | setPlainText(const QString &text) |
(since 6.1) void | setResourceProvider(const QTextDocument::ResourceProvider &provider) |
(since 6.0) void | setSubScriptBaseline(qreal baseline) |
(since 6.0) void | setSuperScriptBaseline(qreal baseline) |
| void | setTextWidth(qreal width) |
| void | setUndoRedoEnabled(bool enable) |
| void | setUseDesignMetrics(bool b) |
| QSizeF | size() const |
(since 6.0) qreal | subScriptBaseline() const |
(since 6.0) qreal | superScriptBaseline() const |
| qreal | textWidth() const |
| QString | toHtml() const |
| QString | toMarkdown(QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) const |
| QString | toPlainText() const |
| QString | toRawText() const |
| void | undo(QTextCursor *cursor) |
| bool | useDesignMetrics() const |
Ranuras públicas
| void | redo() |
| void | setModified(bool m = true) |
| void | undo() |
Señales
| void | baseUrlChanged(const QUrl &url) |
| void | blockCountChanged(int newBlockCount) |
| void | contentsChange(int position, int charsRemoved, int charsAdded) |
| void | contentsChanged() |
| void | cursorPositionChanged(const QTextCursor &cursor) |
| void | documentLayoutChanged() |
| void | modificationChanged(bool changed) |
| void | redoAvailable(bool available) |
| void | undoAvailable(bool available) |
| void | undoCommandAdded() |
Miembros públicos estáticos
(since 6.1) QTextDocument::ResourceProvider | defaultResourceProvider() |
(since 6.1) void | setDefaultResourceProvider(const QTextDocument::ResourceProvider &provider) |
Funciones protegidas
| virtual QTextObject * | createObject(const QTextFormat &format) |
| virtual QVariant | loadResource(int type, const QUrl &name) |
Descripción Detallada
QTextDocument es un contenedor para documentos estructurados de texto enriquecido, que proporciona soporte para texto con estilo y varios tipos de elementos de documento, como listas, tablas, marcos e imágenes. Pueden crearse para su uso en QTextEdit, o utilizarse de forma independiente.
Cada elemento del documento se describe mediante un objeto de formato asociado. Cada objeto de formato es tratado como un objeto único por QTextDocuments, y puede ser pasado a objectForFormat() para obtener el elemento del documento al que se aplica.
Un QTextDocument puede editarse mediante programación utilizando QTextCursor, y su contenido puede examinarse recorriendo la estructura del documento. Toda la estructura del documento se almacena como una jerarquía de elementos del documento bajo el marco raíz, que se encuentra con la función rootFrame(). Alternativamente, si sólo desea iterar sobre el contenido textual del documento puede utilizar begin(), end(), y findBlock() para recuperar bloques de texto que puede examinar e iterar sobre ellos.
La maquetación de un documento viene determinada por documentLayout(); puede crear su propia subclase QAbstractTextDocumentLayout y establecerla mediante setDocumentLayout() si desea utilizar su propia lógica de maquetación. El título del documento y otra meta-información puede obtenerse llamando a la función metaInformation(). Para los documentos que se exponen a los usuarios a través de la clase QTextEdit, el título del documento también está disponible a través de la función QTextEdit::documentTitle().
Las funciones de conveniencia toPlainText() y toHtml() permiten recuperar el contenido del documento como texto plano y HTML. El texto del documento puede buscarse mediante las funciones find().
La función setUndoRedoEnabled() permite deshacer/rehacer las operaciones realizadas en el documento. El sistema de deshacer/rehacer puede ser controlado por un widget editor a través de las ranuras undo() y redo(); el documento también proporciona señales contentsChanged(), undoAvailable() y redoAvailable() que informan a los widgets editores conectados sobre el estado del sistema de deshacer/rehacer. Las siguientes son las operaciones de deshacer/rehacer de un QTextDocument:
- Inserción o eliminación de caracteres. Una secuencia de inserciones o eliminaciones dentro del mismo bloque de texto se considera como una única operación de deshacer/rehacer.
- Inserción o eliminación de bloques de texto. Las secuencias de inserciones o eliminaciones en una única operación (por ejemplo, seleccionando y luego eliminando texto) se consideran una única operación de deshacer/rehacer.
- Cambios de formato de caracteres de texto.
- Cambios de formato de bloque de texto.
- Cambios de formato de grupos de bloques de texto.
Véase también QTextCursor, QTextEdit, y Procesamiento de texto enriquecido.
Documentación de tipos de miembros
enum QTextDocument::FindFlag
flags QTextDocument::FindFlags
Este enum describe las opciones disponibles para la función de búsqueda de QTextDocument. Las opciones se pueden OR-ed de la siguiente lista:
| Constante | Valor | Descripción |
|---|---|---|
QTextDocument::FindBackward | 0x00001 | Buscar hacia atrás en lugar de hacia adelante. |
QTextDocument::FindCaseSensitively | 0x00002 | Por defecto, la búsqueda no distingue entre mayúsculas y minúsculas. Especificar esta opción cambia el comportamiento a una operación de búsqueda sensible a mayúsculas y minúsculas. |
QTextDocument::FindWholeWords | 0x00004 | Hace que find busque sólo palabras completas. |
El tipo FindFlags es un typedef para QFlags<FindFlag>. Almacena una combinación OR de valores FindFlag.
enum QTextDocument::MarkdownFeature
flags QTextDocument::MarkdownFeatures
Este enum selecciona el conjunto de características soportadas al leer o escribir Markdown.
| Constante | Valor | Descripción |
|---|---|---|
QTextDocument::MarkdownNoHTML | 0x0020 | 0x0040 | Se descartará cualquier etiqueta HTML en el texto Markdown |
QTextDocument::MarkdownDialectCommonMark | 0 | Sólo las características estandarizadas por CommonMark |
QTextDocument::MarkdownDialectGitHub | 0x0004 | 0x0008 | 0x0400 | 0x0100 | 0x0200 | 0x0800 | 0x4000 | 0x100000 | La mayoría de las características del dialecto GitHub |
Específicamente, el subconjunto soportado del dialecto GitHub incluye todo lo de CommonMark, más:
- reconocer URLs, www y direcciones de correo electrónico y convertirlas en enlaces
- tachado
- subrayado (distinto de la cursiva; en CommonMark es lo mismo)
- tablas
- listas de tareas
- front matter
"Front matter" son a menudo metadatos en formato YAML. Qt no incluye actualmente un analizador sintáctico para eso; pero puedes elegir un analizador sintáctico de terceros, llamar a QTextDocument::metaInformation() para obtener el bloque completo, e invocar tu propio analizador sintáctico después de que Qt haya analizado el archivo Markdown.
Nota: La salida Markdown de toMarkdown() actualmente puede incluir características de GitHub incluso si intentas desactivarlas especificando otro valor enum. Esto puede ser corregido en una futura versión de Qt.
El tipo MarkdownFeatures es un typedef para QFlags<MarkdownFeature>. Almacena una combinación OR de valores MarkdownFeature.
Véase también toMarkdown() y setMarkdown().
enum QTextDocument::MetaInformation
Este enum describe los distintos tipos de metainformación que pueden añadirse a un documento.
| Constante | Valor | Descripción |
|---|---|---|
QTextDocument::DocumentTitle | 0 | El título del documento. |
QTextDocument::DocumentUrl | 1 | La url del documento. La función loadResource() utiliza esta url como base cuando carga recursos relativos. |
QTextDocument::CssMedia | 2 | Este valor se utiliza para seleccionar la regla @media correspondiente, si existe, de una hoja de estilos CSS especificada cuando se llama a setHtml(). Este valor enum se ha introducido en Qt 6.3. |
QTextDocument::FrontMatter | 3 | Este valor se utiliza para seleccionar el material de cabecera, si se extrajo alguno durante el análisis del archivo fuente (actualmente sólo del formato Markdown). Este valor enum se ha introducido en Qt 6.8. |
Véase también metaInformation(), setMetaInformation(), y setHtml().
[alias, since 6.1] QTextDocument::ResourceProvider
Alias de tipo para std::function<QVariant(const QUrl&)>.
Este typedef se introdujo en Qt 6.1.
enum QTextDocument::ResourceType
Este enum describe los tipos de recursos que pueden ser cargados por la función loadResource() de QTextDocument o por QTextBrowser::setSource().
| Constante | Valor | Descripción |
|---|---|---|
QTextDocument::UnknownResource | 0 | No se ha cargado ningún recurso o se desconoce el tipo de recurso. |
QTextDocument::HtmlResource | 1 | El recurso contiene HTML. |
QTextDocument::ImageResource | 2 | El recurso contiene datos de imagen. Los tipos de datos soportados actualmente son QMetaType::QPixmap y QMetaType::QImage. Si la variante correspondiente es del tipo QMetaType::QByteArray entonces Qt intenta cargar la imagen utilizando QImage::loadFromData. QMetaType::QIcon no está soportado actualmente. Es necesario convertir primero el icono a uno de los tipos soportados, por ejemplo utilizando QIcon::pixmap. |
QTextDocument::StyleSheetResource | 3 | El recurso contiene CSS. |
QTextDocument::MarkdownResource | 4 | El recurso contiene Markdown. |
QTextDocument::UserResource | 100 | El primer valor disponible para los tipos de recursos definidos por el usuario. |
Véase también loadResource() y QTextBrowser::sourceType().
enum QTextDocument::Stacks
| Constante | Valor | Descripción |
|---|---|---|
QTextDocument::UndoStack | 0x01 | La pila de deshacer. |
QTextDocument::RedoStack | 0x02 | La pila de rehacer. |
QTextDocument::UndoAndRedoStacks | UndoStack | RedoStack | Ambas pilas, deshacer y rehacer. |
Documentación de propiedades
baseUrl : QUrl
Esta propiedad contiene la URL base utilizada para resolver URLs de recursos relativos dentro del documento.
Las URLs de recursos se resuelven dentro del mismo directorio que el destino de la URL base, lo que significa que cualquier parte de la ruta después del último '/' será ignorada.
| URL base | URL relativa | URL resuelta |
|---|---|---|
| archivo:///ruta/al/contenido | images/logo.png | file:///ruta/hacia/images/logo.png |
| file:///ruta/al/contenido/ | images/logo.png | file:///ruta/hacia/contenido/images/logo.png |
| file:///ruta/hacia/contenido/index.html | images/logo.png | file:///ruta/hacia/contenido/images/logo.png |
| file:///ruta/hacia/contenido/images/ | ../images/logo.png | file:///ruta/hacia/contenido/images/logo.png |
Funciones de acceso:
| QUrl | baseUrl() const |
| void | setBaseUrl(const QUrl &url) |
Notificador de señal:
| void | baseUrlChanged(const QUrl &url) |
[read-only] blockCount : int
Esta propiedad contiene el número de bloques de texto del documento.
El valor de esta propiedad es indefinido en documentos con tablas o marcos.
Por defecto, si está definida, esta propiedad contiene un valor de 1.
Funciones de acceso:
| int | blockCount() const |
Véase también lineCount() y characterCount().
defaultFont : QFont
Esta propiedad contiene la fuente por defecto utilizada para mostrar el texto del documento
Funciones de acceso:
| QFont | defaultFont() const |
| void | setDefaultFont(const QFont &font) |
defaultStyleSheet : QString
La hoja de estilo predeterminada se aplica a todo el texto con nuevo formato HTML que se inserta en el documento, por ejemplo mediante setHtml() o QTextCursor::insertHtml().
La hoja de estilo debe cumplir la sintaxis CSS 2.1.
Nota: El cambio de la hoja de estilo por defecto no tiene ningún efecto sobre el contenido existente del documento.
Funciones de acceso:
| QString | defaultStyleSheet() const |
| void | setDefaultStyleSheet(const QString &sheet) |
Véase también Subconjunto HTML soportado.
defaultTextOption : QTextOption
Esta propiedad contiene la opción de texto por defecto que se establecerá en todos los QTextLayouts del documento.
Cuando se crea QTextBlocks, la opción de texto por defecto se establece en su QTextLayout. Esto permite establecer propiedades globales para el documento, como el modo de ajuste de palabras por defecto.
Funciones de acceso:
| QTextOption | defaultTextOption() const |
| void | setDefaultTextOption(const QTextOption &option) |
documentMargin : qreal
El margen alrededor del documento. Por defecto es 4.
Funciones de acceso:
| qreal | documentMargin() const |
| void | setDocumentMargin(qreal margin) |
indentWidth : qreal
Devuelve el ancho utilizado para la sangría de listas y bloques de texto.
Las propiedades de sangrado de QTextListFormat y QTextBlockFormat especifican múltiplos de este valor. El ancho de sangría por defecto es 40.
Funciones de acceso:
| qreal | indentWidth() const |
| void | setIndentWidth(qreal width) |
[since 6.4] layoutEnabled : bool
Esta propiedad establece si QTextDocument debe recalcular la maquetación después de cada cambio.
Si esta propiedad está a true, cualquier cambio en el documento activa una maquetación, lo que hace que todo funcione como se espera pero lleva tiempo.
Deshabilitar temporalmente la maquetación puede ahorrar tiempo cuando se realizan múltiples cambios (no sólo en el contenido del texto, sino también en la fuente por defecto, opción de texto por defecto....) de forma que el documento sólo se maqueta una vez al final. Esto puede ser útil cuando el ancho del texto o el tamaño de la página aún no se conocen, por ejemplo.
Por defecto, esta propiedad es true.
Esta propiedad se introdujo en Qt 6.4.
Funciones de acceso:
| bool | isLayoutEnabled() const |
| void | setLayoutEnabled(bool b) |
Véase también setTextWidth.
maximumBlockCount : int
Especifica el límite de bloques del documento.
Especifica el número máximo de bloques que puede tener el documento. Si hay más bloques en el documento que los especificados con esta propiedad, los bloques se eliminan desde el principio del documento.
Un valor negativo o cero especifica que el documento puede contener una cantidad ilimitada de bloques.
El valor por defecto es 0.
Tenga en cuenta que al establecer esta propiedad se aplicará el límite inmediatamente al contenido del documento.
Al establecer esta propiedad también se desactiva el historial de deshacer rehacer.
Esta propiedad no está definida en documentos con tablas o marcos.
Funciones de acceso:
| int | maximumBlockCount() const |
| void | setMaximumBlockCount(int maximum) |
modified : bool
Esta propiedad indica si el documento ha sido modificado por el usuario.
Por defecto, esta propiedad es false.
Funciones de acceso:
| bool | isModified() const |
| void | setModified(bool m = true) |
Véase también modificationChanged().
pageSize : QSizeF
Esta propiedad contiene el tamaño de página que debe utilizarse para maquetar el documento.
Las unidades están determinadas por el dispositivo de pintura subyacente. El tamaño se mide en píxeles lógicos cuando se pinta en la pantalla, y en puntos (1/72 pulgadas) cuando se pinta en una impresora.
Por defecto, para un documento vacío recién creado, esta propiedad contiene un tamaño indefinido.
Funciones de acceso:
| QSizeF | pageSize() const |
| void | setPageSize(const QSizeF &size) |
Véase también modificationChanged().
[read-only] size : QSizeF
Esta propiedad contiene el tamaño real del documento. Es equivalente a documentLayout()->documentSize();
El tamaño del documento puede cambiarse estableciendo una anchura de texto o estableciendo el tamaño de toda la página.
Tenga en cuenta que la anchura siempre es >= pageSize().width().
Por defecto, para un documento vacío recién creado, esta propiedad contiene un tamaño dependiente de la configuración.
Funciones de acceso:
| QSizeF | size() const |
Véase también setTextWidth(), setPageSize() y idealWidth().
textWidth : qreal
La anchura del texto especifica la anchura preferida para el texto en el documento. Si el texto (o el contenido en general) es más ancho que el especificado con se divide en múltiples líneas y crece verticalmente. Si el texto no puede dividirse en varias líneas para ajustarse a la anchura de texto especificada, será más grande y las propiedades size() y idealWidth() lo reflejarán.
Si la anchura del texto es -1, el texto no se dividirá en varias líneas a menos que se haga mediante un salto de línea explícito o un nuevo párrafo.
El valor por defecto es -1.
Al establecer el ancho del texto también se establecerá la altura de la página en -1, haciendo que el documento crezca o se reduzca verticalmente de forma continua. Si desea que la maquetación del documento divida el texto en varias páginas, deberá establecer en su lugar la propiedad pageSize.
Funciones de acceso:
| qreal | textWidth() const |
| void | setTextWidth(qreal width) |
Véase también size(), idealWidth(), y pageSize().
undoRedoEnabled : bool
Esta propiedad indica si deshacer/rehacer está habilitado para este documento.
El valor por defecto es true. Si está deshabilitada, la pila de deshacer se borra y no se añadirán elementos a ella.
Funciones de acceso:
| bool | isUndoRedoEnabled() const |
| void | setUndoRedoEnabled(bool enable) |
useDesignMetrics : bool
Esta propiedad indica si el documento utiliza métricas de diseño de fuentes para mejorar la precisión de la maquetación del texto.
Si esta propiedad es igual a true, el diseño utilizará métricas de diseño. En caso contrario, se utilizarán las métricas del dispositivo de pintura establecidas en QAbstractTextDocumentLayout::setPaintDevice().
El uso de métricas de diseño hace que un diseño tenga una anchura que ya no depende de las sugerencias y del redondeo de píxeles. Esto significa que el diseño de texto WYSIWYG se hace posible porque el ancho se escala mucho más linealmente basado en las métricas del dispositivo de pintura de lo que lo haría de otra manera.
Por defecto, esta propiedad es false.
Funciones de acceso:
| bool | useDesignMetrics() const |
| void | setUseDesignMetrics(bool b) |
Documentación de las funciones miembro
[explicit] QTextDocument::QTextDocument(QObject *parent = nullptr)
Construye un QTextDocument vacío con la dirección parent.
[explicit] QTextDocument::QTextDocument(const QString &text, QObject *parent = nullptr)
Construye un QTextDocument que contiene el texto plano (sin formato) text especificado, y con el parent dado.
[virtual noexcept] QTextDocument::~QTextDocument()
Destruye el documento.
void QTextDocument::addResource(int type, const QUrl &name, const QVariant &resource)
Añade el recurso resource a la caché de recursos, utilizando type y name como identificadores. type debe ser un valor de QTextDocument::ResourceType.
Por ejemplo, puede añadir una imagen como recurso para poder hacer referencia a ella desde dentro del documento:
document->addResource(QTextDocument::ImageResource, QUrl("mydata://image.png"), QVariant(image));
La imagen puede insertarse en el documento utilizando la API QTextCursor:
QTextImageFormat imageFormat; imageFormat.setName("mydata://image.png"); cursor.insertImage(imageFormat);
Alternativamente, puede insertar imágenes utilizando la etiqueta HTML img:
editor->append("<img src=\"mydata://image.png\" />");
void QTextDocument::adjustSize()
Ajusta el documento a un tamaño razonable.
Véase también idealWidth(), textWidth, y size.
QList<QTextFormat> QTextDocument::allFormats() const
Devuelve una lista de formatos de texto para todos los formatos utilizados en el documento.
int QTextDocument::availableRedoSteps() const
Devuelve el número de pasos de rehacer disponibles.
Véase también isRedoAvailable().
int QTextDocument::availableUndoSteps() const
Devuelve el número de pasos de deshacer disponibles.
Véase también isUndoAvailable().
[since 6.0] qreal QTextDocument::baselineOffset() const
Devuelve el desplazamiento de la línea de base en % utilizado en el diseño del documento.
Esta función se introdujo en Qt 6.0.
Véase también setBaselineOffset(), setSubScriptBaseline(), subScriptBaseline(), setSuperScriptBaseline(), y superScriptBaseline().
QTextBlock QTextDocument::begin() const
Devuelve el primer bloque de texto del documento.
Véase también firstBlock().
[signal] void QTextDocument::blockCountChanged(int newBlockCount)
Esta señal se emite cuando cambia el número total de bloques de texto del documento. El valor pasado en newBlockCount es el nuevo total.
QChar QTextDocument::characterAt(int pos) const
Devuelve el carácter en la posición pos, o un carácter nulo si la posición está fuera de rango.
Véase también characterCount().
int QTextDocument::characterCount() const
Devuelve el número de caracteres de este documento.
Nota: Como un QTextDocument siempre contiene al menos un QChar::ParagraphSeparator, este método devolverá al menos 1.
Véase también blockCount() y characterAt().
[virtual] void QTextDocument::clear()
Borra el documento.
void QTextDocument::clearUndoRedoStacks(QTextDocument::Stacks stacksToClear = UndoAndRedoStacks)
Borra las pilas especificadas por stacksToClear.
Este método borra cualquier orden de la pila de deshacer, de la pila de rehacer o de ambas (por defecto). Si se borran comandos, se emiten las señales apropiadas, QTextDocument::undoAvailable() o QTextDocument::redoAvailable().
Véase también QTextDocument::undoAvailable() y QTextDocument::redoAvailable().
QTextDocument *QTextDocument::clone(QObject *parent = nullptr) const
Crea un nuevo QTextDocument que es una copia de este documento de texto. parent es el padre del documento de texto devuelto.
[signal] void QTextDocument::contentsChange(int position, int charsRemoved, int charsAdded)
Esta señal se emite siempre que cambia el contenido del documento; por ejemplo, cuando se inserta o elimina texto, o cuando se aplica formato.
Se proporciona información sobre la dirección position del carácter del documento en el que se ha producido el cambio, el número de caracteres eliminados (charsRemoved) y el número de caracteres añadidos (charsAdded).
La señal se emite antes de que se notifique el cambio al gestor de maquetación del documento. Este hook permite implementar el resaltado de sintaxis para el documento.
Véase también QAbstractTextDocumentLayout::documentChanged() y contentsChanged().
[signal] void QTextDocument::contentsChanged()
Esta señal se emite cada vez que cambia el contenido del documento; por ejemplo, cuando se inserta o elimina texto, o cuando se aplica formato.
Véase también contentsChange().
[virtual protected] QTextObject *QTextDocument::createObject(const QTextFormat &format)
Crea y devuelve un nuevo objeto documento (un QTextObject), basado en el format dado.
QTextObjects siempre se creará a través de este método, por lo que debes reimplementarlo si utilizas objetos de texto personalizados dentro de tu documento.
[signal] void QTextDocument::cursorPositionChanged(const QTextCursor &cursor)
Esta señal se emite cada vez que la posición del cursor cambia debido a una operación de edición. El cursor que cambió se pasa en cursor. Si el documento se utiliza con la clase QTextEdit y se necesita una señal cuando el cursor se mueve con las teclas de flecha se puede utilizar la señal cursorPositionChanged() en QTextEdit.
Qt::CursorMoveStyle QTextDocument::defaultCursorMoveStyle() const
El estilo de movimiento del cursor por defecto es utilizado por todos los objetos QTextCursor creados a partir del documento. Por defecto es Qt::LogicalMoveStyle.
Véase también setDefaultCursorMoveStyle().
QFont QTextDocument::defaultFont() const
Devuelve la fuente por defecto que se utilizará en el diseño del documento.
Nota: Función Getter para la propiedad defaultFont.
Véase también setDefaultFont().
[static, since 6.1] QTextDocument::ResourceProvider QTextDocument::defaultResourceProvider()
Devuelve el proveedor de recursos por defecto.
Esta función se introdujo en Qt 6.1.
Véase también setDefaultResourceProvider(), resourceProvider() y loadResource().
QTextOption QTextDocument::defaultTextOption() const
La opción de texto por defecto se utiliza en todos los objetos QTextLayout del documento. Esto permite establecer propiedades globales para el documento, como el modo de ajuste de palabras por defecto.
Nota: Función Getter para la propiedad defaultTextOption.
Véase también setDefaultTextOption().
QAbstractTextDocumentLayout *QTextDocument::documentLayout() const
Devuelve el diseño del documento.
Véase también setDocumentLayout().
[signal] void QTextDocument::documentLayoutChanged()
Esta señal se emite cuando se establece un nuevo diseño de documento.
Véase también setDocumentLayout().
void QTextDocument::drawContents(QPainter *p, const QRectF &rect = QRectF())
Dibuja el contenido del documento con el pintor p, recortado a rect. Si rect es un rectángulo nulo (por defecto) entonces el documento se pinta sin recortar.
QTextBlock QTextDocument::end() const
Esta función devuelve un bloque para comprobar el final del documento mientras se itera sobre él.
for (QTextBlock it = doc->begin(); it != doc->end(); it = it.next()) std::cout << it.text().toStdString() << "\n";
El bloque devuelto no es válido y representa el bloque posterior al último bloque del documento. Puede utilizar lastBlock() para recuperar el último bloque válido del documento.
Véase también lastBlock().
QTextCursor QTextDocument::find(const QRegularExpression &expr, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const
Busca la siguiente aparición que coincida con la expresión regular dada, expr, dentro del mismo párrafo del documento.
La búsqueda comienza en la posición de la expresión regular cursor, y avanza por el documento a menos que se especifique lo contrario en las opciones de búsqueda. options controla el tipo de búsqueda realizada.
Si se encuentra una coincidencia, devuelve un cursor con la coincidencia seleccionada; en caso contrario, devuelve un cursor nulo.
Si el cursor dado tiene una selección, la búsqueda comienza después de la selección; en caso contrario, comienza en la posición del cursor.
Por defecto, la búsqueda no distingue entre mayúsculas y minúsculas, y puede coincidir con texto de cualquier parte del documento.
QTextCursor QTextDocument::find(const QRegularExpression &expr, int from = 0, QTextDocument::FindFlags options = FindFlags()) const
Busca la siguiente aparición que coincida con la expresión regular dada, expr, dentro del mismo párrafo del documento.
La búsqueda comienza en la posición from y avanza por el documento, a menos que se especifique lo contrario en las opciones de búsqueda. options controla el tipo de búsqueda realizada.
Si se encuentra una coincidencia, devuelve un cursor con la coincidencia seleccionada; en caso contrario, devuelve un cursor nulo.
Si la posición de from es 0 (por defecto), la búsqueda comienza desde el principio del documento; en caso contrario, comienza en la posición especificada.
Advertencia: Por razones históricas, se ignora la opción de distinción entre mayúsculas y minúsculas establecida en expr. En su lugar, se utiliza options para determinar si la búsqueda distingue entre mayúsculas y minúsculas o no.
QTextCursor QTextDocument::find(const QString &subString, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const
Busca la siguiente aparición de la cadena subString en el documento. La búsqueda comienza en la posición de cursor y avanza por el documento a menos que se especifique lo contrario en las opciones de búsqueda. options controla el tipo de búsqueda.
Devuelve un cursor con la coincidencia seleccionada si se ha encontrado subString; en caso contrario devuelve un cursor nulo.
Si el cursor dado tiene una selección, la búsqueda comienza después de la selección; en caso contrario, comienza en la posición del cursor.
Por defecto, la búsqueda no distingue entre mayúsculas y minúsculas, y puede coincidir con texto de cualquier parte del documento.
QTextCursor QTextDocument::find(const QString &subString, int position = 0, QTextDocument::FindFlags options = FindFlags()) const
Busca la siguiente aparición de la cadena subString en el documento. La búsqueda comienza en la dirección position y avanza por el documento a menos que se especifique lo contrario en las opciones de búsqueda. options controla el tipo de búsqueda realizada.
Devuelve un cursor con la coincidencia seleccionada si se ha encontrado subString; en caso contrario devuelve un cursor nulo.
Si position es 0 (por defecto), la búsqueda comienza desde el principio del documento; en caso contrario, comienza en la posición especificada.
Se trata de una función sobrecargada.
QTextBlock QTextDocument::findBlock(int pos) const
Devuelve el bloque de texto que contiene el pos-ésimo carácter.
QTextBlock QTextDocument::findBlockByLineNumber(int lineNumber) const
Devuelve el bloque de texto que contiene el lineNumber especificado.
Véase también QTextBlock::firstLineNumber().
QTextBlock QTextDocument::findBlockByNumber(int blockNumber) const
Devuelve el bloque de texto con la dirección blockNumber especificada.
Véase también QTextBlock::blockNumber().
QTextBlock QTextDocument::firstBlock() const
Devuelve el primer bloque de texto del documento.
qreal QTextDocument::idealWidth() const
Devuelve la anchura ideal del documento de texto. La anchura ideal es la anchura realmente utilizada del documento sin tener en cuenta las alineaciones opcionales. Siempre es <= size().width().
Véase también adjustSize() y textWidth.
bool QTextDocument::isEmpty() const
Devuelve true si el documento está vacío; en caso contrario, devuelve false.
bool QTextDocument::isRedoAvailable() const
Devuelve true si redo está disponible; en caso contrario devuelve false.
Véase también isUndoAvailable() y availableRedoSteps().
bool QTextDocument::isUndoAvailable() const
Devuelve true si deshacer está disponible; en caso contrario devuelve false.
Véase también isRedoAvailable() y availableUndoSteps().
QTextBlock QTextDocument::lastBlock() const
Devuelve el último bloque de texto (válido) del documento.
int QTextDocument::lineCount() const
Devuelve el número de líneas de este documento (si la maquetación lo admite). En caso contrario, es idéntico al número de bloques.
Véase también blockCount() y characterCount().
[virtual protected invokable] QVariant QTextDocument::loadResource(int type, const QUrl &name)
Carga datos del type especificado desde el recurso con el name dado.
Esta función es llamada por el motor de texto enriquecido para solicitar datos que no están directamente almacenados por QTextDocument, pero sí asociados a él. Por ejemplo, las imágenes se referencian indirectamente mediante el atributo name de un objeto QTextImageFormat.
Cuando es llamado por Qt, type es uno de los valores de QTextDocument::ResourceType.
Si QTextDocument es un objeto hijo de QObject que tiene un método loadResource invocable, como QTextEdit, QTextBrowser o el propio QTextDocument, la implementación por defecto intenta recuperar los datos del padre.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
Véase también QTextDocument::ResourceProvider.
void QTextDocument::markContentsDirty(int position, int length)
Marca el contenido especificado por position y length como "sucio", informando al documento de que necesita ser maquetado de nuevo.
QString QTextDocument::metaInformation(QTextDocument::MetaInformation info) const
Devuelve metainformación sobre el documento del tipo especificado por info.
Véase también setMetaInformation().
[signal] void QTextDocument::modificationChanged(bool changed)
Esta señal se emite siempre que el contenido del documento cambia de forma que afecta al estado de modificación. Si changed es verdadero, el documento ha sido modificado; en caso contrario, es falso.
Por ejemplo, llamar a setModified(false) en un documento y luego insertar texto hace que se emita la señal. Si deshaces esa operación, haciendo que el documento vuelva a su estado original sin modificar, la señal se emitirá de nuevo.
QTextObject *QTextDocument::object(int objectIndex) const
Devuelve el objeto de texto asociado a la dirección objectIndex.
QTextObject *QTextDocument::objectForFormat(const QTextFormat &f) const
Devuelve el objeto de texto asociado al formato f.
int QTextDocument::pageCount() const
devuelve el número de páginas de este documento.
void QTextDocument::print(QPagedPaintDevice *printer) const
Imprime el documento en la dirección printer. El QPagedPaintDevice debe ser configurado antes de ser utilizado con esta función.
Este es sólo un método conveniente para imprimir todo el documento en la impresora.
Si el documento ya está paginado a través de una altura especificada en la propiedad pageSize() se imprime tal cual.
Si el documento no está paginado, como por ejemplo un documento utilizado en QTextEdit, entonces se crea una copia temporal del documento y la copia se divide en varias páginas según el tamaño del paperRect() del dispositivo de pintura. Por defecto, se establece un margen de 2 cm alrededor del contenido del documento. Además, el número de página actual se imprime en la parte inferior de cada página.
Véase también QTextEdit::print().
void QTextDocument::redo(QTextCursor *cursor)
Rehace la última operación de edición del documento si redo is available.
El cursor proporcionado se coloca al final de la ubicación donde se rehizo la operación de edición.
[slot] void QTextDocument::redo()
Rehace la última operación de edición del documento si redo is available.
Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
textDocument, qOverload<>(&QTextDocument::redo));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
textDocument, [receiver = textDocument]() { receiver->redo(); });[signal] void QTextDocument::redoAvailable(bool available)
Esta señal se emite cuando las operaciones de rehacer están disponibles (available es verdadero) o no disponibles (available es falso).
QVariant QTextDocument::resource(int type, const QUrl &name) const
Devuelve datos del type especificado del recurso con el name dado.
Esta función es llamada por el motor de texto enriquecido para solicitar datos que no están directamente almacenados por QTextDocument, pero sí asociados a él. Por ejemplo, las imágenes se referencian indirectamente mediante el atributo name de un objeto QTextImageFormat.
Los recursos se almacenan en caché internamente en el documento. Si un recurso no se encuentra en la caché, se llama a loadResource para intentar cargar el recurso. loadResource debe entonces utilizar addResource para añadir el recurso a la caché.
Si loadResource no carga el recurso, entonces se llamará a resourceProvider y por último a defaultResourceProvider, si está configurado. Tenga en cuenta que el resultado del proveedor no se añadirá automáticamente a la caché.
Véase también QTextDocument::ResourceType y resourceProvider().
[since 6.1] QTextDocument::ResourceProvider QTextDocument::resourceProvider() const
Devuelve el proveedor de recursos para este documento de texto.
Esta función se introdujo en Qt 6.1.
Véase también setResourceProvider(), defaultResourceProvider() y loadResource().
int QTextDocument::revision() const
Devuelve la revisión del documento (si deshacer está activado).
Se garantiza que la revisión aumenta cuando se edita un documento que no ha sido modificado.
Véase también QTextBlock::revision() y isModified().
QTextFrame *QTextDocument::rootFrame() const
Devuelve el marco raíz del documento.
[since 6.0] void QTextDocument::setBaselineOffset(qreal baseline)
Establece la línea base como un % de la altura de la fuente a utilizar en el diseño del documento a baseline. El valor por defecto es 0. Un valor positivo desplaza el texto hacia arriba, en el % correspondiente; un valor negativo lo desplaza hacia abajo.
Esta función se introdujo en Qt 6.0.
Véase también baselineOffset(), setSubScriptBaseline(), subScriptBaseline(), setSuperScriptBaseline(), y superScriptBaseline().
void QTextDocument::setDefaultCursorMoveStyle(Qt::CursorMoveStyle style)
Establece el estilo de movimiento del cursor por defecto en style.
Véase también defaultCursorMoveStyle().
void QTextDocument::setDefaultFont(const QFont &font)
Establece el font por defecto a utilizar en la maquetación del documento.
Nota: Función Setter para la propiedad defaultFont.
Véase también defaultFont().
[static, since 6.1] void QTextDocument::setDefaultResourceProvider(const QTextDocument::ResourceProvider &provider)
Establece el proveedor de recursos por defecto en provider.
El proveedor por defecto será utilizado por todos los QTextDocuments que no tengan un proveedor explícito establecido.
Esta función se introdujo en Qt 6.1.
Ver también defaultResourceProvider(), setResourceProvider(), y loadResource().
void QTextDocument::setDefaultTextOption(const QTextOption &option)
Establece la opción de texto por defecto en option.
Nota: Función Setter para la propiedad defaultTextOption.
Véase también defaultTextOption().
void QTextDocument::setDocumentLayout(QAbstractTextDocumentLayout *layout)
Configura el documento para que utilice la dirección layout. El diseño anterior se elimina.
Véase también documentLayoutChanged().
void QTextDocument::setHtml(const QString &html)
Sustituye todo el contenido del documento por el texto con formato HTML dado en la cadena html. El historial de deshacer/rehacer se reinicia cuando se llama a esta función.
El formato HTML se respeta en la medida de lo posible; por ejemplo, "<b>texto en negrita</b>" producirá un texto en el que la primera palabra tiene un peso de fuente que le da un aspecto de negrita: "textoen negrita ".
Para seleccionar una regla de medios css distinta de la regla por defecto "screen", utilice setMetaInformation() con 'CssMedia' como parámetro "info".
Nota: Es responsabilidad de quien llama asegurarse de que el texto se decodifica correctamente cuando se crea un QString que contiene HTML y se pasa a setHtml().
Véase también setPlainText(), Supported HTML Subset, y setMetaInformation().
void QTextDocument::setIndentWidth(qreal width)
Establece el width utilizado para la sangría de listas y bloques de texto.
Las propiedades de sangría de QTextListFormat y QTextBlockFormat especifican múltiplos de este valor. El ancho de sangría por defecto es 40 .
Nota: Función Setter para la propiedad indentWidth.
Véase también indentWidth().
void QTextDocument::setMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub)
Sustituye todo el contenido del documento por el texto con formato Markdown dado en la cadena markdown, con el soporte dado features. Por defecto, se incluyen todas las características Markdown estilo GitHub soportadas; pase MarkdownDialectCommonMark para un análisis más básico.
El formato Markdown se respeta en la medida de lo posible; por ejemplo, "*bold* text" producirá un texto en el que la primera palabra tiene un peso de fuente que le da un aspecto enfatizado.
El análisis sintáctico de HTML incluido en la cadena markdown se realiza del mismo modo que en setHtml; sin embargo, no se admite el formato Markdown dentro de bloques HTML.
Algunas características del analizador pueden activarse o desactivarse mediante el argumento features. El valor por defecto es MarkdownDialectGitHub.
El historial de deshacer/rehacer se reinicia cuando se llama a esta función.
void QTextDocument::setMetaInformation(QTextDocument::MetaInformation info, const QString &string)
Establece la metainformación del documento del tipo especificado por info en el string dado.
Véase también metaInformation().
void QTextDocument::setPlainText(const QString &text)
Sustituye todo el contenido del documento por el texto plano text. El historial de deshacer/rehacer se reinicia cuando se llama a esta función.
Véase también setHtml().
[since 6.1] void QTextDocument::setResourceProvider(const QTextDocument::ResourceProvider &provider)
Establece el proveedor de recursos para el documento de texto en provider.
Esta función se introdujo en Qt 6.1.
Véase también resourceProvider() y loadResource().
[since 6.0] void QTextDocument::setSubScriptBaseline(qreal baseline)
Establece la línea base del subíndice por defecto como un % de la altura de la fuente a usar en el diseño del documento a baseline. El valor por defecto es 16.67% (1/6 de la altura).
Esta función se introdujo en Qt 6.0.
Véase también subScriptBaseline(), setSuperScriptBaseline(), superScriptBaseline(), setBaselineOffset(), y baselineOffset().
[since 6.0] void QTextDocument::setSuperScriptBaseline(qreal baseline)
Establece la línea base del superíndice por defecto como un % de la altura de la fuente a usar en el diseño del documento a baseline. El valor por defecto es 50% (1/2 de la altura).
Esta función se introdujo en Qt 6.0.
Véase también superScriptBaseline(), setSubScriptBaseline(), subScriptBaseline(), setBaselineOffset(), y baselineOffset().
[since 6.0] qreal QTextDocument::subScriptBaseline() const
Devuelve la línea base del superíndice como un % de la altura de la fuente utilizada en el diseño del documento.
Esta función se introdujo en Qt 6.0.
Véase también setSubScriptBaseline(), setSuperScriptBaseline(), superScriptBaseline(), setBaselineOffset() y baselineOffset().
[since 6.0] qreal QTextDocument::superScriptBaseline() const
Devuelve la línea base del superíndice como un % de la altura de la fuente utilizada en el diseño del documento.
Esta función se introdujo en Qt 6.0.
Véase también setSuperScriptBaseline(), setSubScriptBaseline(), subScriptBaseline(), setBaselineOffset() y baselineOffset().
QString QTextDocument::toHtml() const
Devuelve una cadena que contiene una representación HTML del documento.
El contenido del documento especifica que su codificación es UTF-8. Si posteriormente convierte la cadena html devuelta en una matriz de bytes para transmitirla a través de una red o al guardarla en disco, deberá utilizar QString::toUtf8() para convertir la cadena en un QByteArray.
Véase también Subconjunto HTML soportado.
QString QTextDocument::toMarkdown(QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) const
Devuelve una cadena que contiene una representación Markdown del documento con la dirección features, o una cadena vacía si la escritura falla por cualquier motivo.
Véase también setMarkdown.
QString QTextDocument::toPlainText() const
Devuelve el texto sin formato contenido en el documento. Si desea información de formato, utilice QTextCursor.
Esta función devuelve lo mismo que toRawText(), pero sustituirá algunos caracteres unicode por alternativas ASCII. En particular, el espacio sin salto (U+00A0) se sustituye por un espacio normal (U+0020), y los separadores de párrafo (U+2029) y línea (U+2028) se sustituyen por un salto de línea (U+000A). Si necesita el contenido exacto del documento, utilice en su lugar toRawText().
Nota: Los objetos incrustados, como las imágenes, se representan mediante el valor Unicode U+FFFC (CARÁCTER DE SUSTITUCIÓN DE OBJETO).
Véase también toHtml().
QString QTextDocument::toRawText() const
Devuelve el texto en bruto contenido en el documento sin ninguna información de formato. Si desea información de formato, utilice QTextCursor.
Véase también toPlainText().
void QTextDocument::undo(QTextCursor *cursor)
Deshace la última operación de edición en el documento si deshacer está disponible. El cursor proporcionado se sitúa al final de la ubicación donde se deshizo la operación de edición.
Consulte la documentación de Qt Undo Framework para más detalles.
Véase también undoAvailable() y isUndoRedoEnabled().
[slot] void QTextDocument::undo()
Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
textDocument, qOverload<>(&QTextDocument::undo));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
textDocument, [receiver = textDocument]() { receiver->undo(); });[signal] void QTextDocument::undoAvailable(bool available)
Esta señal se emite cuando las operaciones de deshacer están disponibles (available es verdadero) o no disponibles (available es falso).
Consulte la documentación de Qt Undo Framework para más detalles.
Véase también undo() y isUndoRedoEnabled().
[signal] void QTextDocument::undoCommandAdded()
Esta señal se emite cada vez que se añade un nuevo nivel de deshacer a la QTextDocument.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.