QTextObjectInterface Class

Die Klasse QTextObjectInterface ermöglicht das Zeichnen von benutzerdefinierten Textobjekten in QTextDocuments. Mehr...

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

Öffentliche Funktionen

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

Detaillierte Beschreibung

Ein Textobjekt beschreibt die Struktur eines oder mehrerer Elemente in einem Textdokument. So werden z.B. aus HTML importierte Bilder durch Textobjekte implementiert. Ein Textobjekt weiß, wie es seine Elemente anordnen und zeichnen muss, wenn ein Dokument gerendert wird.

Qt erlaubt das Einfügen von benutzerdefinierten Textobjekten in ein Dokument, indem ein benutzerdefiniertes object type mit QTextCharFormat registriert wird. Ein QTextObjectInterface muss auch für diesen Typ implementiert werden und registered mit dem QAbstractTextDocumentLayout des Dokuments sein. Wenn der Objekttyp beim Rendern eines QTextDocument angetroffen wird, werden die Funktionen intrinsicSize() und drawObject() der Schnittstelle aufgerufen.

Die folgende Liste erläutert die erforderlichen Schritte zum Einfügen eines benutzerdefinierten Textobjekts in ein Dokument:

Eine Klasse, die ein Textobjekt implementiert, muss sowohl QObject als auch QTextObjectInterface erben. QObject muss die erste geerbte Klasse sein. Ein Beispiel:

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

Die Daten eines Textobjekts werden normalerweise mit QTextCharFormat::setProperty() in QTextCharFormat gespeichert und dann mit QTextCharFormat::property() abgerufen.

Warnung: Die Operationen Kopieren und Einfügen ignorieren benutzerdefinierte Textobjekte.

Siehe auch QTextCharFormat und QTextLayout.

Dokumentation der Mitgliedsfunktionen

[virtual noexcept] QTextObjectInterface::~QTextObjectInterface()

Zerstört diese QTextObjectInterface.

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

Zeichnet dieses Textobjekt unter Verwendung des angegebenen painter.

Die Größe des Rechtecks, rect, in das gezeichnet werden soll, ist die Größe, die zuvor mit intrinsicSize() berechnet wurde. Die Position des Rechtecks ist relativ zu painter.

Sie erhalten auch das Dokument (doc) und die Position (posInDocument) des format in diesem Dokument.

Siehe auch intrinsicSize().

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

Die Funktion intrinsicSize() gibt die Größe des durch format dargestellten Textobjekts in dem angegebenen Dokument (doc) an der angegebenen Position (posInDocument) zurück.

Die berechnete Größe wird bei nachfolgenden Aufrufen von drawObject() für dieses format verwendet.

Siehe auch drawObject().

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