[−][src]Struct qt_gui::QTextObjectInterface
The QTextObjectInterface class allows drawing of custom text objects in QTextDocuments.
C++ class: QTextObjectInterface
.
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:
- 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 QTextObjectInterface intrinsicSize() 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.
Methods
impl QTextObjectInterface
[src]
pub unsafe fn copy_from(
&mut self,
other: impl CastInto<Ref<QTextObjectInterface>>
) -> MutRef<QTextObjectInterface>
[src]
&mut self,
other: impl CastInto<Ref<QTextObjectInterface>>
) -> MutRef<QTextObjectInterface>
The QTextObjectInterface class allows drawing of custom text objects in QTextDocuments.
Calls C++ function: QTextObjectInterface& QTextObjectInterface::operator=(const QTextObjectInterface& other)
.
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:
- 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 QTextObjectInterface intrinsicSize() 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.
pub unsafe fn draw_object(
&mut self,
painter: impl CastInto<MutPtr<QPainter>>,
rect: impl CastInto<Ref<QRectF>>,
doc: impl CastInto<MutPtr<QTextDocument>>,
pos_in_document: c_int,
format: impl CastInto<Ref<QTextFormat>>
)
[src]
&mut self,
painter: impl CastInto<MutPtr<QPainter>>,
rect: impl CastInto<Ref<QRectF>>,
doc: impl CastInto<MutPtr<QTextDocument>>,
pos_in_document: c_int,
format: impl CastInto<Ref<QTextFormat>>
)
Draws this text object using the specified painter.
Calls C++ function: pure virtual void QTextObjectInterface::drawObject(QPainter* painter, const QRectF& rect, QTextDocument* doc, int posInDocument, const 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().
pub unsafe fn intrinsic_size(
&mut self,
doc: impl CastInto<MutPtr<QTextDocument>>,
pos_in_document: c_int,
format: impl CastInto<Ref<QTextFormat>>
) -> CppBox<QSizeF>
[src]
&mut self,
doc: impl CastInto<MutPtr<QTextDocument>>,
pos_in_document: c_int,
format: impl CastInto<Ref<QTextFormat>>
) -> CppBox<QSizeF>
The intrinsicSize() function returns the size of the text object represented by format in the given document (doc) at the given position (posInDocument).
Calls C++ function: pure virtual QSizeF QTextObjectInterface::intrinsicSize(QTextDocument* doc, int posInDocument, const 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().
Trait Implementations
impl CppDeletable for QTextObjectInterface
[src]
unsafe fn delete(&mut self)
[src]
Destroys this QTextObjectInterface.
Calls C++ function: virtual [destructor] void QTextObjectInterface::~QTextObjectInterface()
.
Destroys this QTextObjectInterface.
Auto Trait Implementations
impl RefUnwindSafe for QTextObjectInterface
impl Send for QTextObjectInterface
impl Sync for QTextObjectInterface
impl Unpin for QTextObjectInterface
impl UnwindSafe for QTextObjectInterface
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> CastInto<U> for T where
U: CastFrom<T>,
[src]
U: CastFrom<T>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> StaticUpcast<T> for T
[src]
unsafe fn static_upcast(ptr: Ptr<T>) -> Ptr<T>
[src]
unsafe fn static_upcast_mut(ptr: MutPtr<T>) -> MutPtr<T>
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,