QFontMetrics方法功能(5.12)


//for starf study

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include
#include
#include
#include


//QFontMetrics类提供字体度量信息。
//QFontMetrics函数计算给定字体的字符和字符串大小。
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QFont ft2 = QFont("宋体",14,66,true);
    QFontMetrics fm =  QFontMetrics(ft2); //参数是一个font对象
    qDebug()<<fm.averageCharWidth(); //返回字体中字形的平均宽度。
    qDebug()<<fm.boundingRect("c"); //如果要在坐标系原点绘制字符ch,则返回墨迹覆盖的矩形。
                                                      //边界矩形可能会延伸到(0,0)的左侧(比如对于斜体字体)
    QRect rc = fm.boundingRect("hello world"); //返回由文本指定的字符串中字符的边界矩形。
                                                                        //如果在(0,0)处绘制,边框始终至少覆盖文本将覆盖的像素集。
    qDebug()<<fm.capHeight(); //返回字体的大写高度。
    qDebug()<<fm.descent(); //返回字体的下降距离。下降距离是从基线到字符延伸到的最低点的距离。
    qDebug()<<fm.ascent(); //返回字体的上升距离。上升距离是从基线到字符延伸到的最高点的距离。
    qDebug()<<fm.averageCharWidth(); //返回字体中字形的平均宽度。
    qDebug()<<fm.elidedText("过于宽的文本内容,超过hello world",Qt::ElideRight,100);
                                                //如果字符串文本宽度大于宽度,则返回该字符串的省略版本
                                                //参数2确定省略号的位置Qt::ElideLeft 左边,Qt::ElideRight右边,Qt::ElideMiddle中间
                                                //Qt::ElideNone 不显示
    qDebug()<<fm.height(); //返回字体的高度
    qDebug()<<fm.horizontalAdvance("hello", 0); //返回参数1中的第参数2个字符的水平进位(px)
    qDebug()<<fm.inFont('c'); //如果参数所示字符是该字体中可以显示的字符,则返回true
    qDebug()<<fm.leading(); //返回字体的前导字符。 这是自然的行距。
    qDebug()<<fm.lineSpacing(); //返回从一条基线到下一条基线的距离。
    qDebug()<<fm.lineWidth(); //返回下划线和删除线的宽度,根据字体的点大小进行调整。
    qDebug()<<fm.maxWidth(); //返回字体中最宽字符的宽度。
    qDebug()<<fm.overlinePos(); //返回从基线到应绘制上划线的位置的距离。
    qDebug()<<fm.size(Qt::TextWordWrap,"test str"); //返回文本的大小(以像素为单位)。
            //参数1设置文本格式
            //Qt::TextWordWrap  忽略换行符。
    qDebug()<<fm.strikeOutPos(); //返回从基线到删除线应绘制位置的距离。
    qDebug()<<fm.underlinePos(); //返回从基线到应绘制下划线的位置的距离。

}

MainWindow::~MainWindow()
{
    delete ui;
}

你可能感兴趣的:(QT,QT基础控件,qt5,c++,qt)