QFontMetricsF Class Reference
[QtGui module]
该QFontMetricsF类提供的字体度量信息。More…
Methods
__init__ (self, QFont)
__init__ (self, QFont, QPaintDevice pd)
__init__ (self, QFontMetrics)
__init__ (self, QFontMetricsF)
float ascent (self)
float averageCharWidth (self)
QRectF boundingRect (self, QChar)
QRectF boundingRect (self, QString string)
QRectF boundingRect (self, QRectF rect, int flags, QString text, int tabStops = 0, list-of-int tabArray = 0)
QRectF boundingRectChar (self, QChar)
float descent (self)
QString elidedText (self, QString text, Qt.TextElideMode mode, float width, int flags = 0)
float height (self)
bool inFont (self, QChar)
bool inFontUcs4 (self, int character)
float leading (self)
float leftBearing (self, QChar)
float lineSpacing (self)
float lineWidth (self)
float maxWidth (self)
float minLeftBearing (self)
float minRightBearing (self)
float overlinePos (self)
float rightBearing (self, QChar)
QSizeF size (self, int flags, QString text, int tabStops = 0, list-of-int tabArray = 0)
float strikeOutPos (self)
QRectF tightBoundingRect (self, QString text)
float underlinePos (self)
float width (self, QChar)
float width (self, QString string)
float widthChar (self, QChar)
float xHeight (self)
Special Methods
bool __eq__ (self, QFontMetricsF other)
bool __ne__ (self, QFontMetricsF other)
Detailed Description
该QFontMetricsF类提供的字体度量信息。
QFontMetricsF函数计算字符和字符串给定字体的大小。你可以构造一个QFontMetricsF对象与现有QFont获得指标的字体。如果字体是后来改,字体规格对象not更新。
一旦创建,该对象提供了访问字体,它的字符,并在字体渲染字符串的各个指标。
有迹象表明,在字体上运行几个功能:ascent( )descent( )height( )leading()和lineSpacing( )返回字体的基本大小属性。该underlinePos( )overlinePos( )strikeOutPos()和lineWidth( )函数,返回强调, overlines或撞击出的字符的行的属性。这些功能都是快。
也有一些对集合中的字体字形的操作一些功能:minLeftBearing( )minRightBearing()和maxWidth( ) 。这些都是必然缓慢,我们建议避免他们,如果可能的。
对于每一个字符,就可以得到其width( )leftBearing()和rightBearing( ),并找出是否是在使用字体inFont( ) 。您也可以把字符作为字符串,并使用字符串函数就可以了。
字符串函数包括:width() ,返回字符串的宽度以像素为单位(或点,用于打印机)boundingRect( )返回一个矩形足够大,以包含所呈现的串,并size() ,以返回该矩形的大小。
例如:
[QFont]($docs-qfont.html) font("times", 24);
QFontMetricsF fm(font);
[qreal]($docs-index.htm#qreal-typedef) pixelsWide = fm.width("What's the width of this text?");
[qreal]($docs-index.htm#qreal-typedef) pixelsHigh = fm.height();
Method Documentation
QFontMetricsF.__init__ (self, QFont)
构造一个字体规格对象为font。
字体规格将与用于创建paintdevice兼容font。
字体规格对象持有,在它被创建的时候被传递在构造函数中的字体的信息,并且不更新,如果字体的属性后来改。
使用QFontMetricsF(常量QFont& ,QPaintDevice*)来获取字体度量标准,具有一定的绘图设备兼容。
QFontMetricsF.__init__ (self, QFont, QPaintDevice pd)
构造一个字体规格对象为font和paintdevice。
字体规格将与通过paintdevice兼容。如果paintdevice为0时,度量将屏幕兼容的,即得。你得到,如果你使用的字体在绘制文本的指标widgets or pixmaps,而不是在QPicture or QPrinter。
字体规格对象持有,在它被创建的时候被传递在构造函数中的字体的信息,并且不更新,如果字体的属性后来改。
QFontMetricsF.__init__ (self, QFontMetrics)
构造一个字体规格与从给定的浮点精度反对fontMetrics对象。
这个函数中引入了Qt 4.2中。
QFontMetricsF.__init__ (self, QFontMetricsF)
构造的副本fm。
float QFontMetricsF.ascent (self)
返回字体的上升。
字体的上升是从基线到最高位置的字符延伸到距离。在实践中,有些字体设计师打破了这个规则,如当他们把一个以上的口音就一个字之上,或者以适应异国的语言不同寻常的性格,所以它是可能的(虽然很少) ,这个值将是太小了。
See also descent( ) 。
float QFontMetricsF.averageCharWidth (self)
返回字形在字体的平均宽度。
这个函数中引入了Qt 4.2中。
QRectF QFontMetricsF.boundingRect (self, QChar)
[
返回字符的边框由指定的字符串中text。边界矩形总是至少复盖的像素集合的文本将涵盖如果画在( 0 , 0 ) 。
]($docs-qrectf.html)
注意,边框可以延伸到的(0,0 ),例如左斜体字体,返回的矩形的宽度可能比什么不同width( )方法返回。
如果你想知道字符串的超前宽度(布局彼此相邻一组字符串) ,使用width( )来代替。
换行符的处理方法与普通字符,not作为换行符。
的边界矩形的高度至少一样大的返回值height( ) 。
See also width( )height()和QPainter.boundingRect( ) 。
QRectF QFontMetricsF.boundingRect (self, QString string)
[
返回字符的边框ch相对于在基准线的最左边的点。
注意,边框可以延伸到的(0,0 ),例如左斜体字体和文本输出可以复盖all像素的边界矩形。
请注意,矩形通常既基线的上方和下方延伸。
]($docs-qrectf.html)
QRectF QFontMetricsF.boundingRect (self, QRectF rect, int flags, QString text, int tabStops = 0, list-of-int tabArray = 0)
[
该tabArray参数也可能没有。
这是一个重载函数。
返回字符的边框在给定的text。这是一组像素的限制时,由指定的矩形边界的文本将涵盖若拉rect。
该flags参数是下列标志的按位或:
]($docs-qrectf.html)
- Qt.AlignLeft aligns to the left border, except for Arabic and Hebrew where it aligns to the right.
- Qt.AlignRight aligns to the right border, except for Arabic and Hebrew where it aligns to the left.
- Qt.AlignJustify produces justified text.
- Qt.AlignHCenter aligns horizontally centered.
- Qt.AlignTop aligns to the top border.
- Qt.AlignBottom aligns to the bottom border.
- Qt.AlignVCenter aligns vertically centered
- Qt.AlignCenter (==
Qt.AlignHCenter | Qt.AlignVCenter
) - Qt.TextSingleLine ignores newline characters in the text.
- Qt.TextExpandTabs expands tabs (see below)
- Qt.TextShowMnemonic interprets “&x” as <u>x</u>; i.e., underlined.
- Qt.TextWordWrap breaks the text to fit the rectangle.
Qt.Horizontal对齐默认为Qt.AlignLeft和垂直对齐方式默认为Qt.AlignTop。
如果多个水平或几个的垂直对齐的标志被设置,所产生的取向是不确定的。
这些标记被定义Qt.AlignmentFlag。
If Qt.TextExpandTabs在设置flags,以下行为被用来解释制表符中的文本:
- If tabArray is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs in the text.
- If tabStops is non-zero, it is used as the tab spacing (in pixels).
注意,边框可以延伸到的(0,0 ),例如左斜体字体。
换行字符处理为换行符。
尽管在不同的实际字符的高度,的边界矩形的高度“是”, “是”是相同的。
这个函数返回的边界矩形是有点比由简单的计算较大boundingRect()函数。该函数使用maximum left和right字体轴承作为是必要的多行文本正确对齐。此外, fontHeight ()和lineSpacing()被用于计算的高度,而不是单个字符的高度。
See also width( )QPainter.boundingRect()和Qt.Alignment。
QRectF QFontMetricsF.boundingRectChar (self, QChar)
[
float QFontMetricsF.descent (self)
返回字体的血统。
的下降是从基准线到最低点的字符延伸到距离。 (请注意,这是从X不同,它增加了1个像素。 )在实践中,有些字体设计师打破了这个规则,如以容纳在一个异乎寻常的语言不寻常的字符,所以它是可能的(虽然很少) ,该值将是太小。
]($docs-qrectf.html)
QString QFontMetricsF.elidedText (self, QString text, Qt.TextElideMode mode, float width, int flags = 0)
如果字符串text比更宽width,返回字符串的省略版本(即,在用“ …… ”一个字符串) 。否则,返回原始字符串。
该mode参数指定的文本是省略左侧(如“ ……技术” ) ,中间(例如,“风帆… CH” ) ,或在右边(例如,“ TROL …” ) 。
该width指定以像素为单位,而不是以字符。
该flags参数是可选的,并且目前只支持Qt.TextShowMnemonic作为值。
这个函数中引入了Qt 4.2中。
float QFontMetricsF.height (self)
返回字体的高度。
这总是等于ascent()+descent() 1 ( 1是基准线) 。
See also leading()和lineSpacing( ) 。
bool QFontMetricsF.inFont (self, QChar)
返回True如果字符ch在字体中的有效字符,否则返回False 。
bool QFontMetricsF.inFontUcs4 (self, int character)
返回True如果给定的字符ch,编码UCS-4/UTF-32 ,是在字体中的有效字符,否则返回False 。
此功能被引入Qt的4.8 。
float QFontMetricsF.leading (self)
返回字体的领先。
这是自然的线间间距。
See also height()和lineSpacing( ) 。
float QFontMetricsF.leftBearing (self, QChar)
返回字符的左轴承ch在字体。
左边的轴承是从字符的逻辑原点的字符的最左边的像素的右支距离。这个值是负的,如果该字符的像素延伸到逻辑原点的左边。
见宽(QChar)这个度量的图形化描述。
See also rightBearing( )minLeftBearing()和width( ) 。
float QFontMetricsF.lineSpacing (self)
返回从一个基线的距离下。
See also height()和leading( ) 。
float QFontMetricsF.lineWidth (self)
返回下划线和删除线,调整字体的点大小的宽度。
See also underlinePos( )overlinePos()和strikeOutPos( ) 。
float QFontMetricsF.maxWidth (self)
返回最宽的字符的字体的宽度。
float QFontMetricsF.minLeftBearing (self)
返回字体的最小左轴承。
这是字体中的所有字符的最小leftBearing (字符) 。
请注意,此功能可能会非常缓慢,如果字体很大。
See also minRightBearing()和leftBearing( ) 。
float QFontMetricsF.minRightBearing (self)
返回字体的最低右侧轴承。
这是字体中的所有字符的最小rightBearing (字符) 。
请注意,此功能可能会非常缓慢,如果字体很大。
See also minLeftBearing()和rightBearing( ) 。
float QFontMetricsF.overlinePos (self)
返回从基线的距离,其中一个上划线应绘制。
See also underlinePos( )strikeOutPos()和lineWidth( ) 。
float QFontMetricsF.rightBearing (self, QChar)
返回字符的右侧轴承ch在字体。
右轴承是由一个后续字符的逻辑原点的最右边的像素的字符的左病房距离。这个值是负的,如果该字符的像素延伸到的权width的字符() 。
See width( )这个指标的图形化描述。
See also leftBearing( )minRightBearing()和width( ) 。
QSizeF QFontMetricsF.size (self, int flags, QString text, int tabStops = 0, list-of-int tabArray = 0)
[
该tabArray参数也可能没有。
返回大小的字符的像素在给定的text。
该flags参数是下列标志的按位或:
](qsizef.html)
- Qt.TextSingleLine ignores newline characters.
- Qt.TextExpandTabs expands tabs (see below)
- Qt.TextShowMnemonic interprets “&x” as <u>x</u>; i.e., underlined.
- Qt.TextWordBreak breaks the text to fit the rectangle.
这些标记被定义Qt.TextFlags。
If Qt.TextExpandTabs在设置flags,以下行为被用来解释制表符中的文本:
- If tabArray is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs in the text.
- If tabStops is non-zero, it is used as the tab spacing (in pixels).
换行字符处理为换行符。
注意:尽管在不同的实际字符的高度,的边界矩形的高度“是”, “是”是相同的。
See also boundingRect( ) 。
float QFontMetricsF.strikeOutPos (self)
返回从基准线的距离,其中应绘制的三振线。
See also underlinePos( )overlinePos()和lineWidth( ) 。
QRectF QFontMetricsF.tightBoundingRect (self, QString text)
[
返回字符周围紧张的边界矩形被指定的字符串中text。边界矩形总是至少复盖的像素集合的文本将涵盖如果画在( 0 , 0 ) 。
]($docs-qrectf.html)
注意,边框可以延伸到的(0,0 ),例如左斜体字体,返回的矩形的宽度可能比什么不同width( )方法返回。
如果你想知道字符串的超前宽度(布局彼此相邻一组字符串) ,使用width( )来代替。
换行符的处理方法与普通字符,not作为换行符。
Warning:调用此方法将是非常缓慢的Windows 。
此功能被引入Qt的4.3 。
See also width( )height()和boundingRect( ) 。
float QFontMetricsF.underlinePos (self)
返回从基线的距离,其中一个底线应绘制。
See also overlinePos( )strikeOutPos()和lineWidth( ) 。
float QFontMetricsF.width (self, QChar)
返回的宽度中的字符的像素在给定的text。
注意,该值是not等于返回的宽度boundingRect( ) ,宽( ),因为boundingRect( )返回一个描述像素的矩形这个字符串将复盖而宽度( )返回的距离应在其中绘制的下一个字符串。
See also boundingRect( ) 。
float QFontMetricsF.width (self, QString string)
这是一个重载函数。
返回字符的逻辑宽度ch以像素为单位。这是一个距离合适后拉随后的字符ch。
一些度量中的所述图像中所描述的权利。中央暗矩形复盖的逻辑width每个字符的( ) 。外苍白的矩形复盖leftBearing()和rightBearing每个字符的( ) 。注意,在这个特定的字体的“f”的轴承都是负的,而轴承的“o”都是正的。
Warning:此功能会产生不正确的结果在一个字符串的中间阿拉伯文字符或无空格标记,作为字形整形和标记的定位是处理字符串时,会发生不能考虑。当实现一个互动的文本控件,使用QTextLayout代替。
See also boundingRect( ) 。
float QFontMetricsF.widthChar (self, QChar)
float QFontMetricsF.xHeight (self)
返回字体的’X’的高度。这是常常但不总是相同的字符“X”的高度。
bool QFontMetricsF.__eq__ (self, QFontMetricsF other)
bool QFontMetricsF.__ne__ (self, QFontMetricsF other)