Class QTextObjectInterface

  extended by com.trolltech.qt.internal.QSignalEmitterInternal
      extended by com.trolltech.qt.QSignalEmitter
          extended by com.trolltech.qt.QtJambiObject
              extended by com.trolltech.qt.core.QObject
                  extended by com.trolltech.qt.gui.QTextObjectInterface
All Implemented Interfaces:

public abstract class QTextObjectInterface
extends QObject

The QTextObjectInterface class allows drawing of custom text objects in QTextDocuments. A text object describes the structure of one or more elements in a text document; for instance, images imported from HTML are implemented using text objects. A text object knows how to lay out and draw its elements when a document is being rendered.

Qt allows custom text objects to be inserted into a document by registering a custom object type with QTextCharFormat. A QTextObjectInterface must also be implemented for this type and be registered with the QAbstractTextDocumentLayout of the document. When the object type is encountered while rendering a QTextDocument, the intrinsicSize() and drawObject() functions of the interface are called.

The following list explains the required steps of inserting a custom text object into a document:

A class implementing a text object needs to inherit both QObject and QTextObjectInterface. QObject must be the first class inherited. For instance:
class SvgTextObject : public QObject, public QTextObjectInterface
The data of a text object is usually stored in the QTextCharFormat using QTextCharFormat::setProperty(), and then retrieved with QTextCharFormat::property().

Warning: Copy and Paste operations ignore custom text objects.

See also:
Text Object Example, QTextCharFormat, and QTextLayout.

Nested Class Summary
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter
QSignalEmitter.AbstractSignal, QSignalEmitter.PrivateSignal0, QSignalEmitter.PrivateSignal1, QSignalEmitter.PrivateSignal2, QSignalEmitter.PrivateSignal3, QSignalEmitter.PrivateSignal4, QSignalEmitter.PrivateSignal5, QSignalEmitter.PrivateSignal6, QSignalEmitter.PrivateSignal7, QSignalEmitter.PrivateSignal8, QSignalEmitter.PrivateSignal9, QSignalEmitter.Signal0, QSignalEmitter.Signal1, QSignalEmitter.Signal2, QSignalEmitter.Signal3, QSignalEmitter.Signal4, QSignalEmitter.Signal5, QSignalEmitter.Signal6, QSignalEmitter.Signal7, QSignalEmitter.Signal8, QSignalEmitter.Signal9
Nested classes/interfaces inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
Field Summary
Fields inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
Constructor Summary
          This is an overloaded method provided for convenience.
Method Summary
abstract  void drawObject(QPainter painter, QRectF rect, QTextDocument doc, int posInDocument, QTextFormat format)
          Draws this text object using the specified painter.
abstract  QSizeF intrinsicSize(QTextDocument doc, int posInDocument, QTextFormat format)
          The intrinsicSize() function returns the size of the text object represented by format in the given document (doc) at the given position (posInDocument).
Methods inherited from class com.trolltech.qt.core.QObject
childEvent, children, connectSlotsByName, customEvent, disposeLater, dumpObjectInfo, dumpObjectTree, dynamicPropertyNames, event, eventFilter, findChild, findChild, findChild, findChildren, findChildren, findChildren, findChildren, indexOfProperty, installEventFilter, isWidgetType, killTimer, moveToThread, objectName, parent, properties, property, removeEventFilter, setObjectName, setParent, setProperty, startTimer, timerEvent, toString, userProperty
Methods inherited from class com.trolltech.qt.QtJambiObject
dispose, disposed, equals, finalize, reassignNativeResources, tr, tr, tr
Methods inherited from class com.trolltech.qt.QSignalEmitter
blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread
Methods inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
Methods inherited from class java.lang.Object
clone, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.trolltech.qt.QtJambiInterface
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership

Constructor Detail


public QTextObjectInterface()
This is an overloaded method provided for convenience.

Method Detail


public abstract void drawObject(QPainter painter,
                                QRectF rect,
                                QTextDocument doc,
                                int posInDocument,
                                QTextFormat format)
Draws this text object using the specified painter.

The size of the rectangle, rect, to draw in is the size previously calculated by intrinsicSize(). The rectangles position is relative to the painter.

You also get the document (doc) and the position (posInDocument) of the format in that document.

See also:


public abstract QSizeF intrinsicSize(QTextDocument doc,
                                     int posInDocument,
                                     QTextFormat format)
The intrinsicSize() function returns the size of the text object represented by format in the given document (doc) at the given position (posInDocument).

The size calculated will be used for subsequent calls to drawObject() for this format.

See also: