QStaticText Class Reference
[QtGui module]
该QStaticText类使文本时,其布局是很少更新的文字最优化的绘图。More…
Types
enum PerformanceHint { ModerateCaching, AggressiveCaching }
Methods
__init__ (self)
__init__ (self, QString text)
__init__ (self, QStaticText other)
PerformanceHint performanceHint (self)
prepare (self, QTransform matrix = QTransform(), QFont font = QFont())
setPerformanceHint (self, PerformanceHint performanceHint)
setText (self, QString text)
setTextFormat (self, Qt.TextFormat textFormat)
setTextOption (self, QTextOption textOption)
setTextWidth (self, float textWidth)
QSizeF size (self)
QString text (self)
Qt.TextFormat textFormat (self)
QTextOption textOption (self)
float textWidth (self)
Special Methods
bool __eq__ (self, QStaticText)
bool __ne__ (self, QStaticText)
Detailed Description
该QStaticText类使文本时,其布局是很少更新的文字最优化的绘图。
QStaticText提供了一种方法来缓存布局数据为文本块,以便它可以通过使用更高效地绘制比QPainter.drawText其中( )的布局信息重新计算每个呼叫。
该类主要提供情况的文字,其字体和画家的转变是静态的在几个油漆事件的优化。如果文本或它的布局发生变化,每一次迭代,QPainter.drawText()是更有效的替代方案,由于静态文本的布局就必须重新计算,以利用新的状态考虑在内。
翻译的画家不会导致重新计算文本的布局,但会造成drawStaticText一个非常小的性能影响( ) 。改变画家的转换或画家的字体的任何其他部分将导致重新计算的静态文本的布局。这应该被避免尽可能多地最大限度地利用QStaticText的性能优势。
此外,只有仿射变换是由drawStaticText ( )的支持。上投射画家调用drawStaticText ()将执行比使用常规的drawText ()调用略差,所以这应该被避免。
class MyWidget: public [QWidget](qwidget.html)
{
public:
MyWidget([QWidget](qwidget.html) *parent = 0) : [QWidget](qwidget.html)(parent), m_staticText("This is static text")
protected:
void paintEvent([QPaintEvent](qpaintevent.html) *)
{
[QPainter](qpainter.html) painter(this);
painter.drawStaticText(0, 0, m_staticText);
}
private:
QStaticText m_staticText;
};
该QStaticText类可以用来模仿的行为QPainter.drawText( )到一个特定的点,没有界限,也当QPainter.drawText( )被调用矩形边框。
如果不需要矩形边框,创建一个QStaticText对象没有设定一个首选的文本的宽度。那么文本将佔据一行。
如果您在QStaticText对象上设置一个文本的宽度,这将势必文本。该文本将被格式化,这样行不超过给定的宽度。文本宽度为QStaticText设置将不会自动被用于裁剪。为了实现裁剪除了换行符,使用QPainter.setClipRect( ) 。文字的位置是由传递给该参数决定QPainter.drawStaticText( ) ,可以从呼叫改变对性能的影响微乎其微打电话。
为了更加方便,可以使用所支持的HTML子集,以应用格式的文本QTextDocument。 QStaticText会尝试猜测输入文本的使用格式Qt.mightBeRichText( ) ,并把它解释为富文本,如果这个函数返回True。要强制QStaticText以显示其内容为纯文本或富文本,使用功能QStaticText.setTextFormat( ),并通过在分别Qt.PlainText和Qt.RichText。
QStaticText只能代表文本,它改变文本的布局或外观所以只有HTML标籤会受到尊重。添加图像输入HTML格式,例如,将导致图像被包括作为布局的一部分,从而影响文本的字符的位置,但它不会被显示。其结果将是一个空的区域中的图像的尺寸在输出中。同样,使用表将导致文本进行布局以表格的形式,但边框将不会被绘制。
如果是第一次的静态文本绘制,或者如果静态文本,或画家的字体已经自最后一次修改它被绘制,文字的布局,必须重新计算。在某些涂料发动机,改变画家的矩阵也将导致布局进行重新计算。特别是,这会发生于任何发动机除了OpenGL2涂料引擎。重新计算布局将强加的开销QPainter.drawStaticText( )调用在那里发生。为了避免这种开销在内线时,可以调用prepare()的时间提前,以确保布局的计算方法。
Type Documentation
QStaticText.PerformanceHint
这个枚举,可以在设置的不同性能的提示QStaticText。这些提示可以被用来指示该QStaticText应该使用额外的缓存,如果可能的话,在记忆的费用,以提高性能。特别是,在设置性能暗示AggressiveCaching上QStaticText使用OpenGL图形系统或绘制到时将提高性能时QGLWidget。
Constant | Value | Description |
---|---|---|
QStaticText.ModerateCaching |
0 |
做基本的缓存高性能,低内存成本。 |
QStaticText.AggressiveCaching |
1 |
使用额外的缓存时可用。这可能在更高的存储器成本提高性能。 |
Method Documentation
QStaticText.__init__ (self)
构造一个空QStaticText
QStaticText.__init__ (self, QString text)
构造一个QStaticText与给定对象text。
QStaticText.__init__ (self, QStaticText other)
构造一个QStaticText对象,这是一个拷贝other。
PerformanceHint QStaticText.performanceHint (self)
See also setPerformanceHint( ) 。
QStaticText.prepare (self, QTransform matrix = QTransform(), QFont font = QFont())
准备QStaticText对于对象被绘制与给定matrix和给定的font避免架空当实际drawStaticText ( )调用。
当drawStaticText ( )被调用时,的布局QStaticText将被重新计算,如果任何部分的QStaticText自从上一次被绘制的对象发生了变化。如果画家的字体是不一样的,因为它也将被重新计算时QStaticText被最后绘制,或在任何其他绘图引擎比OpenGL2引擎,如果画家的矩阵已经改变,因为静态文本的最后绘制。
为了避免创建布局中的第一次绘制的开销QStaticText在进行更改后,您可以使用prepare ( )函数,并传入matrix和font你希望绘制文本时使用。
See also QPainter.setFont()和QPainter.setMatrix( ) 。
QStaticText.setPerformanceHint (self, PerformanceHint performanceHint)
设置的性能提示QStaticText根据本performanceHint提供。该performanceHint用于自定义多少缓存是在内部完成,以提高性能。
默认值是QStaticText.ModerateCaching。
Note:此功能将导致需要重新计算的文本的布局。
See also performanceHint( ) 。
QStaticText.setText (self, QString text)
设置的文本QStaticText至text。
Note:此功能将导致需要重新计算的文本的布局。
See also text( ) 。
QStaticText.setTextFormat (self, Qt.TextFormat textFormat)
设置的文本格式QStaticText至textFormat。如果textFormat被设置为Qt.AutoText(默认) ,文本格式将尝试使用该功能来确定Qt.mightBeRichText( ) 。如果文本格式是Qt.PlainText,则文本将显示为是,则它会被解释为HTML格式是否为Qt.RichText。该改变文本的字体,颜色,或者其布局的HTML标籤都受到支持QStaticText。
Note:此功能将导致需要重新计算的文本的布局。
See also textFormat( )setText()和text( ) 。
QStaticText.setTextOption (self, QTextOption textOption)
设置文本选项的结构,控制布局过程中给定的textOption。
See also textOption( ) 。
QStaticText.setTextWidth (self, float textWidth)
设置此的首选宽度QStaticText。如果文本比指定的宽度更宽,它会被分成多行和垂直增长。如果文字不能拆分成多行,它会比指定的大textWidth。
首选的文本宽度设置为负数会导致文本是无界的。
使用size()来获取文本的实际大小。
Note:此功能将导致需要重新计算的文本的布局。
See also textWidth()和size( ) 。
QSizeF QStaticText.size (self)
See also textWidth( ) 。
QString QStaticText.text (self)
返回的文本QStaticText。
See also setText( ) 。
Qt.TextFormat QStaticText.textFormat (self)
See also setTextFormat( )setText()和text( ) 。
QTextOption QStaticText.textOption (self)
[
返回用于控制布局过程中的当前文本选项。
]($docs-qtextoption.html)
See also setTextOption( ) 。
float QStaticText.textWidth (self)
返回首选宽度为这个QStaticText。
See also setTextWidth( ) 。
bool QStaticText.__eq__ (self, QStaticText)
bool QStaticText.__ne__ (self, QStaticText)