//for starf study #include "mainwindow.h" #include "ui_mainwindow.h" #include
<QDebug> #include<QFontMetrics> #include<QFont> #include<QRect>
//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; }

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信