Text widgets¶
QwtText¶
- class qwt.text.QwtText(text=None, textFormat=None, other=None)[source]¶
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)[source]¶
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(text, textFormat=None)[source]¶
Assign a new text content
- Parameters
text (str) – Text content
textFormat (int) – Text format
See also
- setRenderFlags(renderFlags)[source]¶
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
- setFont(font)[source]¶
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
- usedFont(defaultFont)[source]¶
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
- setColor(color)[source]¶
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
- usedColor(defaultColor)[source]¶
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
- setBorderRadius(radius)[source]¶
Set the radius for the corners of the border frame
- Parameters
radius (float) – Radius of a rounded corner
See also
- setBackgroundBrush(brush)[source]¶
Set the background brush
- Parameters
brush (QBrush) – Background brush
See also
- setPaintAttribute(attribute, on=True)[source]¶
Change a paint attribute
- Parameters
attribute (int) – Paint attribute
on (bool) – On/Off
Note
Used by setFont(), setColor(), setBorderPen() and setBackgroundBrush()
See also
- testPaintAttribute(attribute)[source]¶
Test a paint attribute
- Parameters
attribute (int) – Paint attribute
- Returns
True, if attribute is enabled
See also
- setLayoutAttribute(attribute, on=True)[source]¶
Change a layout attribute
- Parameters
attribute (int) – Layout attribute
on (bool) – On/Off
See also
- testLayoutAttribute(attribute)[source]¶
Test a layout attribute
- Parameters
attribute (int) – Layout attribute
- Returns
True, if attribute is enabled
See also
- heightForWidth(width, defaultFont=None)[source]¶
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)[source]¶
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)[source]¶
Draw a text into a rectangle
- Parameters
painter (QPainter) – Painter
rect (QRectF) – Rectangle
- textEngine(text=None, format_=None)[source]¶
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)[source]¶
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
Warning
Using QwtText.AutoText does nothing.
QwtTextLabel¶
- class qwt.text.QwtTextLabel(*args)[source]¶
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)[source]¶
Interface for the designer plugin - does the same as setText()
- Parameters
text (str) – Text
See also
- setText(text, textFormat=0)[source]¶
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
- setIndent(indent)[source]¶
Set label’s text indent in pixels
- Parameters
indent (int) – Indentation in pixels
See also
- setMargin(margin)[source]¶
Set label’s margin in pixels
- Parameters
margin (int) – Margin in pixels
See also
- heightForWidth(width)[source]¶
- Parameters
width (int) – Width
- Returns
Preferred height for this widget, given the width.
- drawContents(painter)[source]¶
Redraw the text and focus indicator
- Parameters
painter (QPainter) – Painter
Text engines¶
QwtTextEngine¶
- class qwt.text.QwtTextEngine[source]¶
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
- heightForWidth(font, flags, text, width)[source]¶
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)[source]¶
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)[source]¶
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)[source]¶
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
QwtPlainTextEngine¶
- class qwt.text.QwtPlainTextEngine[source]¶
A text engine for plain texts
QwtPlainTextEngine renders texts using the basic Qt classes QPainter and QFontMetrics.
- heightForWidth(font, flags, text, width)[source]¶
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)[source]¶
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)[source]¶
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
QwtRichTextEngine¶
- class qwt.text.QwtRichTextEngine[source]¶
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)[source]¶
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)[source]¶
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)[source]¶
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)[source]¶
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)[source]¶
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