Qt浅析QFontMetrics获取字体宽度,⾼度
搬运官⽅⼿册:
详细说明
  QFontMetrics类提供字体规格信息。
QFontMetrics函数计算给定字体的字符和字符串的⼤⼩。您可以通过三种⽅式创建QFontMetrics对象:
⽤QFont调⽤QFontMetrics构造函数会为屏幕兼容字体创建字体度量对象,即该字体不能为打印机字体。如果以后更改字体,则不会更新字体指标对象。
(注意:如果您使⽤打印机字体,则返回的值可能不正确。由于⽆法始终访问打印机字体,因此,如果提供了打印机字体,则使⽤最近的屏幕字体。)
QWidget :: fontMetrics()返回⼩部件字体的字体指标。这等效于QFontMetrics(widget-> font())。如果稍后更改窗⼝⼩部件的字体,则不会更新字体指标对象。
QPainter :: fontMetrics()返回画家当前字体的字体度量。如果稍后更改画家的字体,则不会更新字体指标对象。
创建对象后,该对象将提供⽤于访问字体,其字符以及以字体呈现的字符串的各个度量的功能。
有⼏种对字体起作⽤的函数:ascent(),descent(),height(),leading()和lineSpacing()返回字体的基本⼤⼩属性。underlinePos(),overlinePos(),
strikeOutPos()和lineWidth()函数返回下划线,上划线或删除字符的⾏的属性。这些功能都很快。
还有⼀些对字体的字形集起作⽤的函数:minLeftBearing(),minRightBearing()和maxWidth()。这些速度⼀定很慢,我们建议尽可能避免使⽤它们。字符串函数title作用
对于每个字符,您都可以使⽤inFont()获得其width(),leftBearing()和rightBearing()并出它是否在字体中。您也可以将字符视为字符串,并在其上使⽤字符串函数。
字符串函数包括width()(返回像素的字符串宽度(或点,对于打印机)),boundingRect(),返回⾜够⼤的矩形以包含呈现的字符串的⼤⼩,以及size(),返回该矩形的⼤⼩。
例:
通过此类可以获取字体的的宽度长度
    QFont font(“ times”,24);
  QFontMetrics fm(font);
  QString text  = QString(tr("“此⽂本的宽度是多少?”"));
  int pixelsWide = fm.width(text);
  int pixelsHigh = fm.height(text);
  或者是样式设置的字体,
  QLable *titleLable = new QLable(this);
  QString title = tr("tips is a demo");
  titleLable->setText(title);
  titleLablel->setStyleSheet(QString("QLabel{color:#333333; font-size: %0px; font-family:Microsoft
YaHei;}").arg(QString::number(_S(14)))); 
  QFontMetrics fm(titleLablel->font());
  titleLable->setFixedWidth(fm.width(title));
  获取text的宽度,⾼度,以此动态调整窗⼝or空间的宽度,⾼度。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。