Sur cette page

QTextObjectInterface Class

La classe QTextObjectInterface permet de dessiner des objets texte personnalisés sur QTextDocuments. Plus...

En-tête : #include <QTextObjectInterface>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui

Fonctions publiques

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

Description détaillée

Un objet texte décrit la structure d'un ou de plusieurs éléments dans un document texte ; par exemple, les images importées de HTML sont implémentées à l'aide d'objets texte. Un objet texte sait comment disposer et dessiner ses éléments lors du rendu d'un document.

Qt permet d'insérer des objets texte personnalisés dans un document en enregistrant un object type personnalisé auprès de QTextCharFormat. Une interface QTextObjectInterface doit également être implémentée pour ce type et être registered avec le QAbstractTextDocumentLayout du document. Lorsque le type d'objet est rencontré lors du rendu d'un document QTextDocument, les fonctions intrinsicSize() et drawObject() de l'interface sont appelées.

La liste suivante explique les étapes nécessaires à l'insertion d'un objet texte personnalisé dans un document :

Une classe implémentant un objet texte doit hériter à la fois de QObject et de QTextObjectInterface. QObject doit être la première classe héritée. Par exemple :

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

Les données d'un objet texte sont généralement stockées dans QTextCharFormat à l'aide de QTextCharFormat::setProperty(), puis récupérées à l'aide de QTextCharFormat::property().

Attention : Les opérations de copier-coller ignorent les objets texte personnalisés.

Voir également QTextCharFormat et QTextLayout.

Documentation sur les fonctions membres

[virtual noexcept] QTextObjectInterface::~QTextObjectInterface()

Détruit cette QTextObjectInterface.

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

Dessine cet objet texte en utilisant le format spécifié painter.

La taille du rectangle, rect, à dessiner est la taille précédemment calculée par intrinsicSize(). La position du rectangle est relative au document painter.

Vous obtenez également le document (doc) et la position (posInDocument) du format dans ce document.

Voir aussi intrinsicSize().

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

La fonction intrinsicSize() renvoie la taille de l'objet texte représenté par format dans le document donné (doc) à la position donnée (posInDocument).

La taille calculée sera utilisée pour les appels ultérieurs à drawObject() pour ce format.

Voir également 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.