# Text widgets

## QwtText

class qwt.text.QwtText(text=None, textFormat=None, other=None)

  A class representing a text

  A QwtText is a text including a set of attributes how to render it.

  > - Format:

  > A text might include control sequences (f.e tags) describing how to render it. Each format (f.e MathML, TeX, Qt Rich Text) has its own set of control sequences, that can be handles by a special QwtTextEngine for this format.

  > - Background:

  > A text might have a background, defined by a QPen and QBrush to improve its visibility. The corners of the background might be rounded.

  > - Font:

  > A text might have an individual font.

  > - Color

  > A text might have an individual color.

  > - Render Flags

  > Flags from Qt.AlignmentFlag and Qt.TextFlag used like in QPainter.drawText().

  ..seealso:

      :py:meth:`qwt.text.QwtTextEngine`,
      :py:meth:`qwt.text.QwtTextLabel`

  Text formats:

  > - QwtText.AutoText:

  >   The text format is determined using QwtTextEngine.mightRender() for all available text engines in increasing order > PlainText. If none of the text engines can render the text is rendered like QwtText.PlainText.

  > - QwtText.PlainText:

  >   Draw the text as it is, using a QwtPlainTextEngine.

  > - QwtText.RichText:

  >   Use the Scribe framework (Qt Rich Text) to render the text.

  > - QwtText.MathMLText:

  >   Use a MathML (http://en.wikipedia.org/wiki/MathML) render engine to display the text. The Qwt MathML extension offers such an engine based on the MathML renderer of the Qt solutions package. To enable MathML support the following code needs to be added to the application:

  >       QwtText.setTextEngine(QwtText.MathMLText, QwtMathMLTextEngine())

  > - QwtText.TeXText:

  >   Use a TeX (http://en.wikipedia.org/wiki/TeX) render engine to display the text ( not implemented yet ).

  > - QwtText.OtherFormat:

  >   The number of text formats can be extended using setTextEngine. Formats >= QwtText.OtherFormat are not used by Qwt.

  Paint attributes:

  > - QwtText.PaintUsingTextFont: The text has an individual font.

  > - QwtText.PaintUsingTextColor: The text has an individual color.

  > - QwtText.PaintBackground: The text has an individual background.

  Layout attributes:

  > - QwtText.MinimumLayout:

  >   Layout the text without its margins. This mode is useful if a text needs to be aligned accurately, like the tick labels of a scale. If QwtTextEngine.textMargins is not implemented for the format of the text, MinimumLayout has no effect.

  class QwtText([text=None][, textFormat=None][, other=None])
    Parameters

      - text (str) – Text content

      - textFormat (int) – Text format

      - other (qwt.text.QwtText) – Object to copy (text and textFormat arguments are ignored)

  classmethod make(text=None, textformat=None, renderflags=None, font=None, family=None, pointsize=None, weight=None, color=None, borderradius=None, borderpen=None, brush=None)

    Create and setup a new QwtText object (convenience function).

    Parameters

      - text (str) – Text content

      - textformat (int) – Text format

      - renderflags (int) – Flags from Qt.AlignmentFlag and Qt.TextFlag

      - font (QFont or None) – Font

      - family (str or None) – Font family (default: Helvetica)

      - pointsize (int or None) – Font point size (default: 10)

      - weight (int or None) – Font weight (default: QFont.Normal)

      - color (QColor or str or None) – Pen color

      - borderradius (float or None) – Radius for the corners of the border frame

      - borderpen (QPen or None) – Background pen

      - brush (QBrush or None) – Background brush

    See also

    `setText()`

  isEmpty()
    Returns

      True if text is empty

  setText(text, textFormat=None)

    Assign a new text content

    Parameters

      - text (str) – Text content

      - textFormat (int) – Text format

    See also

    `text()`

  text()
    Returns

      Text content

    See also

    `setText()`

  setRenderFlags(renderFlags)

    Change the render flags

    The default setting is Qt.AlignCenter

    Parameters

      renderFlags (int) – Bitwise OR of the flags used like in QPainter.drawText()

    See also

    `renderFlags()`, `qwt.text.QwtTextEngine.draw()`

  renderFlags()
    Returns

      Render flags

    See also

    `setRenderFlags()`

  setFont(font)

    Set the font.

    Parameters

      font (QFont) – Font

    Note

    Setting the font might have no effect, when the text contains control sequences for setting fonts.

    See also

    `font()`, `usedFont()`

  font()
    Returns

      Return the font

    See also

    `setFont()`, `usedFont()`

  usedFont(defaultFont)

    Return the font of the text, if it has one. Otherwise return defaultFont.

    Parameters

      defaultFont (QFont) – Default font

    Returns

      Font used for drawing the text

    See also

    `setFont()`, `font()`

  setColor(color)

    Set the pen color used for drawing the text.

    Parameters

      color (QColor) – Color

    Note

    Setting the color might have no effect, when the text contains control sequences for setting colors.

    See also

    `color()`, `usedColor()`

  color()
    Returns

      Return the pen color, used for painting the text

    See also

    `setColor()`, `usedColor()`

  usedColor(defaultColor)

    Return the color of the text, if it has one. Otherwise return defaultColor.

    Parameters

      defaultColor (QColor) – Default color

    Returns

      Color used for drawing the text

    See also

    `setColor()`, `color()`

  setBorderRadius(radius)

    Set the radius for the corners of the border frame

    Parameters

      radius (float) – Radius of a rounded corner

    See also

    `borderRadius()`, `setBorderPen()`, `setBackgroundBrush()`

  borderRadius()
    Returns

      Radius for the corners of the border frame

    See also

    `setBorderRadius()`, `borderPen()`, `backgroundBrush()`

  setBorderPen(pen)

    Set the background pen

    Parameters

      pen (QPen) – Background pen

    See also

    `borderPen()`, `setBackgroundBrush()`

  borderPen()
    Returns

      Background pen

    See also

    `setBorderPen()`, `backgroundBrush()`

  setBackgroundBrush(brush)

    Set the background brush

    Parameters

      brush (QBrush) – Background brush

    See also

    `backgroundBrush()`, `setBorderPen()`

  backgroundBrush()
    Returns

      Background brush

    See also

    `setBackgroundBrush()`, `borderPen()`

  setPaintAttribute(attribute, on=True)

    Change a paint attribute

    Parameters

      - attribute (int) – Paint attribute

      - on (bool) – On/Off

    Note

    Used by setFont(), setColor(), setBorderPen() and setBackgroundBrush()

    See also

    `testPaintAttribute()`

  testPaintAttribute(attribute)

    Test a paint attribute

    Parameters

      attribute (int) – Paint attribute

    Returns

      True, if attribute is enabled

    See also

    `setPaintAttribute()`

  setLayoutAttribute(attribute, on=True)

    Change a layout attribute

    Parameters

      - attribute (int) – Layout attribute

      - on (bool) – On/Off

    See also

    `testLayoutAttribute()`

  testLayoutAttribute(attribute)

    Test a layout attribute

    Parameters

      attribute (int) – Layout attribute

    Returns

      True, if attribute is enabled

    See also

    `setLayoutAttribute()`

  heightForWidth(width, defaultFont=None)

    Find the height for a given width

    Parameters

      - width (float) – Width

      - defaultFont (QFont) – Font, used for the calculation if the text has no font

    Returns

      Calculated height

  textSize(defaultFont)

    Returns the size, that is needed to render text

    :param QFont defaultFont Font, used for the calculation if the text has no font :return: Caluclated size

  draw(painter, rect)

    Draw a text into a rectangle

    Parameters

      - painter (QPainter) – Painter

      - rect (QRectF) – Rectangle

  textEngine(text=None, format_=None)

    Find the text engine for a text format

    In case of QwtText.AutoText the first text engine (beside QwtPlainTextEngine) is returned, where QwtTextEngine.mightRender returns true. If there is none QwtPlainTextEngine is returned.

    If no text engine is registered for the format QwtPlainTextEngine is returned.

    Parameters

      - text (str) – Text, needed in case of AutoText

      - format (int) – Text format

    Returns

      Corresponding text engine

  setTextEngine(format_, engine)

    Assign/Replace a text engine for a text format

    With setTextEngine it is possible to extend PythonQwt with other types of text formats.

    For QwtText.PlainText it is not allowed to assign a engine to None.

    Parameters

      - format (int) – Text format

      - engine (qwt.text.QwtTextEngine) – Text engine

    See also

    `setPaintAttribute()`

    Warning

    Using QwtText.AutoText does nothing.

## QwtTextLabel

class qwt.text.QwtTextLabel(*args)

  A Widget which displays a QwtText

  class QwtTextLabel(parent)
    Parameters

      parent (QWidget) – Parent widget

  class QwtTextLabel([text=None][, parent=None])
    Parameters

      - text (str) – Text

      - parent (QWidget) – Parent widget

  setPlainText(text)

    Interface for the designer plugin - does the same as setText()

    Parameters

      text (str) – Text

    See also

    `plainText()`

  plainText()

    Interface for the designer plugin

    Returns

      Text as plain text

    See also

    `setPlainText()`

  setText(text, textFormat=0)

    Change the label’s text, keeping all other QwtText attributes

    Parameters

      - text (qwt.text.QwtText or str) – New text

      - textFormat (int) – Format of text

    See also

    `text()`

  text()
    Returns

      Return the text

    See also

    `setText()`

  clear()

    Clear the text and all QwtText attributes

  indent()
    Returns

      Label’s text indent in pixels

    See also

    `setIndent()`

  setIndent(indent)

    Set label’s text indent in pixels

    Parameters

      indent (int) – Indentation in pixels

    See also

    `indent()`

  margin()
    Returns

      Label’s text indent in pixels

    See also

    `setMargin()`

  setMargin(margin)

    Set label’s margin in pixels

    Parameters

      margin (int) – Margin in pixels

    See also

    `margin()`

  sizeHint()

    Return a size hint

  minimumSizeHint()

    Return a minimum size hint

  heightForWidth(width)
    Parameters

      width (int) – Width

    Returns

      Preferred height for this widget, given the width.

  paintEvent(self, QPaintEvent)
  drawContents(painter)

    Redraw the text and focus indicator

    Parameters

      painter (QPainter) – Painter

  drawText(painter, textRect)

    Redraw the text

    Parameters

      - painter (QPainter) – Painter

      - textRect (QRectF) – Text rectangle

  textRect()

    Calculate geometry for the text in widget coordinates

    Returns

      Geometry for the text

# Text engines

## QwtTextEngine

class qwt.text.QwtTextEngine

  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 PythonQwt 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

  `qwt.text.QwtText.setTextEngine()`

  heightForWidth(font, flags, text, width)

    Find the height for a given width

    Parameters

      - font (QFont) – Font of the text

      - flags (int) – Bitwise OR of the flags used like in QPainter::drawText

      - text (str) – Text to be rendered

      - width (float) – Width

    Returns

      Calculated height

  textSize(font, flags, text)

    Returns the size, that is needed to render text

    Parameters

      - font (QFont) – Font of the text

      - flags (int) – Bitwise OR of the flags like in for QPainter::drawText

      - text (str) – Text to be rendered

    Returns

      Calculated size

  mightRender(text)

    Test if a string can be rendered by this text engine

    Parameters

      text (str) – Text to be tested

    Returns

      True, if it can be rendered

  textMargins(font)

    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 (QFont) – Font of the text

    Returns

      tuple (left, right, top, bottom) representing margins

  draw(painter, rect, flags, text)

    Draw the text in a clipping rectangle

    Parameters

      - painter (QPainter) – Painter

      - rect (QRectF) – Clipping rectangle

      - flags (int) – Bitwise OR of the flags like in for QPainter::drawText()

      - text (str) – Text to be rendered

## QwtPlainTextEngine

class qwt.text.QwtPlainTextEngine

  A text engine for plain texts

  QwtPlainTextEngine renders texts using the basic Qt classes QPainter and QFontMetrics.

  heightForWidth(font, flags, text, width)

    Find the height for a given width

    Parameters

      - font (QFont) – Font of the text

      - flags (int) – Bitwise OR of the flags used like in QPainter::drawText

      - text (str) – Text to be rendered

      - width (float) – Width

    Returns

      Calculated height

  textSize(font, flags, text)

    Returns the size, that is needed to render text

    Parameters

      - font (QFont) – Font of the text

      - flags (int) – Bitwise OR of the flags like in for QPainter::drawText

      - text (str) – Text to be rendered

    Returns

      Calculated size

  textMargins(font)

    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 (QFont) – Font of the text

    Returns

      tuple (left, right, top, bottom) representing margins

  draw(painter, rect, flags, text)

    Draw the text in a clipping rectangle

    Parameters

      - painter (QPainter) – Painter

      - rect (QRectF) – Clipping rectangle

      - flags (int) – Bitwise OR of the flags like in for QPainter::drawText()

      - text (str) – Text to be rendered

  mightRender(text)

    Test if a string can be rendered by this text engine

    Parameters

      text (str) – Text to be tested

    Returns

      True, if it can be rendered

## QwtRichTextEngine

class qwt.text.QwtRichTextEngine

  A text engine for Qt rich texts

  QwtRichTextEngine renders Qt rich texts using the classes of the Scribe framework of Qt.

  heightForWidth(font, flags, text, width)

    Find the height for a given width

    Parameters

      - font (QFont) – Font of the text

      - flags (int) – Bitwise OR of the flags used like in QPainter::drawText

      - text (str) – Text to be rendered

      - width (float) – Width

    Returns

      Calculated height

  textSize(font, flags, text)

    Returns the size, that is needed to render text

    Parameters

      - font (QFont) – Font of the text

      - flags (int) – Bitwise OR of the flags like in for QPainter::drawText

      - text (str) – Text to be rendered

    Returns

      Calculated size

  draw(painter, rect, flags, text)

    Draw the text in a clipping rectangle

    Parameters

      - painter (QPainter) – Painter

      - rect (QRectF) – Clipping rectangle

      - flags (int) – Bitwise OR of the flags like in for QPainter::drawText()

      - text (str) – Text to be rendered

  mightRender(text)

    Test if a string can be rendered by this text engine

    Parameters

      text (str) – Text to be tested

    Returns

      True, if it can be rendered

  textMargins(font)

    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 (QFont) – Font of the text

    Returns

      tuple (left, right, top, bottom) representing margins