En esta página

QTextObjectInterface Class

La clase QTextObjectInterface permite dibujar objetos de texto personalizados en QTextDocuments. Más...

Cabecera: #include <QTextObjectInterface>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

Funciones públicas

virtual ~QTextObjectInterface()
virtual void drawObject(QPainter *painter, const QRectF &rect, QTextDocument *doc, int posInDocument, const QTextFormat &format) = 0
virtual QSizeF intrinsicSize(QTextDocument *doc, int posInDocument, const QTextFormat &format) = 0

Descripción detallada

Un objeto de texto describe la estructura de uno o más elementos en un documento de texto; por ejemplo, las imágenes importadas de HTML se implementan utilizando objetos de texto. Un objeto de texto sabe cómo disponer y dibujar sus elementos cuando se está renderizando un documento.

Qt permite insertar objetos de texto personalizados en un documento registrando un object type personalizado con QTextCharFormat. Una QTextObjectInterface también debe ser implementada para este tipo y ser registered con el QAbstractTextDocumentLayout del documento. Cuando se encuentra el tipo de objeto al renderizar un QTextDocument, se llama a las funciones intrinsicSize() y drawObject() de la interfaz.

La siguiente lista explica los pasos necesarios para insertar un objeto de texto personalizado en un documento:

Una clase que implemente un objeto de texto necesita heredar tanto QObject como QTextObjectInterface. QObject debe ser la primera clase heredada. Por ejemplo:

class SvgTextObject : public QObject, public QTextObjectInterface
{
    Q_OBJECT
    Q_INTERFACES(QTextObjectInterface)

Los datos de un objeto de texto normalmente se almacenan en QTextCharFormat utilizando QTextCharFormat::setProperty(), y luego se recuperan con QTextCharFormat::property().

Advertencia: Las operaciones de copiar y pegar ignoran los objetos de texto personalizados.

Véase también QTextCharFormat y QTextLayout.

Documentación de las funciones miembro

[virtual noexcept] QTextObjectInterface::~QTextObjectInterface()

Destruye este QTextObjectInterface.

[pure virtual] void QTextObjectInterface::drawObject(QPainter *painter, const QRectF &rect, QTextDocument *doc, int posInDocument, const QTextFormat &format)

Dibuja este objeto de texto utilizando el painter especificado.

El tamaño del rectángulo, rect, a dibujar es el calculado previamente por intrinsicSize(). La posición del rectángulo es relativa a painter.

También se obtiene el documento (doc) y la posición (posInDocument) del format en ese documento.

Véase también intrinsicSize().

[pure virtual] QSizeF QTextObjectInterface::intrinsicSize(QTextDocument *doc, int posInDocument, const QTextFormat &format)

La función intrinsicSize() devuelve el tamaño del objeto de texto representado por format en el documento dado (doc) en la posición dada (posInDocument).

El tamaño calculado se utilizará en posteriores llamadas a drawObject() para este format.

Véase también drawObject().

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