com.trolltech.qt.gui
Class QTextObjectInterface
java.lang.Object
com.trolltech.qt.internal.QSignalEmitterInternal
com.trolltech.qt.QSignalEmitter
com.trolltech.qt.QtJambiObject
com.trolltech.qt.core.QObject
com.trolltech.qt.gui.QTextObjectInterface
- All Implemented Interfaces:
- QtJambiInterface
public abstract class QTextObjectInterface
- extends QObject
The QTextObjectInterface class allows drawing of custom text objects in QTextDocument
s. 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:
- Choose an objectType. The objectType is an integer with a value greater or equal to
QTextFormat::UserObject
. - Create a
QTextCharFormat
object and set the object type to the chosen type using the setObjectType() function. - Implement the QTextObjectInterface class.
- Call
QAbstractTextDocumentLayout::registerHandler()
with an instance of your QTextObjectInterface subclass to register your object type. - Insert
QChar::ObjectReplacementCharacter
with the aforementioned QTextCharFormat
of the chosen object type into the document. As mentioned, the functions of QTextObjectInterfaceintrinsicSize()
and drawObject()
will then be called with the QTextFormat
as parameter whenever the replacement character is encountered.
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
{
Q_OBJECT
Q_INTERFACES(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 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 |
com.trolltech.qt.internal.QSignalEmitterInternal.AbstractSignalInternal |
Fields inherited from class com.trolltech.qt.internal.QSignalEmitterInternal |
currentSender |
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.internal.QSignalEmitterInternal |
__qt_signalInitialization |
Methods inherited from class java.lang.Object |
clone, getClass, hashCode, notify, notifyAll, wait, wait, wait |
QTextObjectInterface
public QTextObjectInterface()
- This is an overloaded method provided for convenience.
drawObject
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:
intrinsicSize()
.
intrinsicSize
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:
drawObject()
.