---
name: "QwtTextEngine"
section: "3"
platform: "linux"
package: "libqwt-doc"
version: "6.1.4-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/QwtTextEngine"
---

# QwtTextEngine(3)

Abstract base class for rendering text strings.

## NAME

QwtTextEngine - Abstract base class for rendering text strings.

## SYNOPSIS

`#include <qwt_text_engine.h>`

Inherited by **QwtMathMLTextEngine**, **QwtPlainTextEngine**, and **QwtRichTextEngine**.

### Public Member Functions

virtual **~QwtTextEngine** ()\
 Destructor.  virtual double **heightForWidth** (const QFont &font, int flags, const QString &text, double width) const =0\
 virtual QSizeF **textSize** (const QFont &font, int flags, const QString &text) const =0\
 virtual bool **mightRender** (const QString &text) const =0\
 virtual void **textMargins** (const QFont &font, const QString &text, double &left, double &right, double &top, double &bottom) const =0\
 virtual void **draw** (QPainter \*painter, const QRectF &rect, int flags, const QString &text) const =0\

### Protected Member Functions

**QwtTextEngine** ()\
 Constructor.

## Detailed Description

Abstract base class for rendering text strings.

A text engine is responsible for rendering texts for a specific text format. They are used by **QwtText** to render a text.

**QwtPlainTextEngine** and **QwtRichTextEngine** are part of the Qwt library. The implementation of **QwtMathMLTextEngine** uses code from the Qt solution package. Because of license implications it is built into a separate library.

**See also:**

**QwtText::setTextEngine()**

## Member Function Documentation

### virtual void QwtTextEngine::draw (QPainter \* painter, const QRectF & rect, int flags, const QString & text) const` [pure virtual]`

Draw the text in a clipping rectangle

**Parameters:**

*painter* Painter \
 *rect* Clipping rectangle \
 *flags* Bitwise OR of the flags like in for QPainter::drawText() \
 *text* Text to be rendered

Implemented in **QwtRichTextEngine**, **QwtPlainTextEngine**, and **QwtMathMLTextEngine**.

### virtual double QwtTextEngine::heightForWidth (const QFont & font, int flags, const QString & text, double width) const` [pure virtual]`

Find the height for a given width

**Parameters:**

*font* Font of the text \
 *flags* Bitwise OR of the flags used like in QPainter::drawText \
 *text* Text to be rendered \
 *width* Width

**Returns:**

Calculated height

Implemented in **QwtRichTextEngine**, **QwtPlainTextEngine**, and **QwtMathMLTextEngine**.

### virtual bool QwtTextEngine::mightRender (const QString & text) const` [pure virtual]`

Test if a string can be rendered by this text engine

**Parameters:**

*text* Text to be tested

**Returns:**

true, if it can be rendered

Implemented in **QwtRichTextEngine**, **QwtPlainTextEngine**, and **QwtMathMLTextEngine**.

### virtual void QwtTextEngine::textMargins (const QFont & font, const QString & text, double & left, double & right, double & top, double & bottom) const` [pure virtual]`

Return margins around the texts

The textSize might include margins around the text, like QFontMetrics::descent(). In situations where texts need to be aligned in detail, knowing these margins might improve the layout calculations.

**Parameters:**

*font* Font of the text \
 *text* Text to be rendered \
 *left* Return value for the left margin \
 *right* Return value for the right margin \
 *top* Return value for the top margin \
 *bottom* Return value for the bottom margin

Implemented in **QwtRichTextEngine**, **QwtPlainTextEngine**, and **QwtMathMLTextEngine**.

### virtual QSizeF QwtTextEngine::textSize (const QFont & font, int flags, const QString & text) const` [pure virtual]`

Returns the size, that is needed to render text

**Parameters:**

*font* Font of the text \
 *flags* Bitwise OR of the flags like in for QPainter::drawText \
 *text* Text to be rendered

**Returns:**

Calculated size

Implemented in **QwtRichTextEngine**, **QwtPlainTextEngine**, and **QwtMathMLTextEngine**.

## Author

Generated automatically by Doxygen for Qwt User's Guide from the source code.
