在Qt中计算文本的宽度与高度
来源:互联网 发布:地图数据质量 编辑:程序博客网 时间:2024/06/06 13:32
在写一些需要精确布局或者排版的软件时候,我们需要知道文本的宽度和高度,保证我们在适当的坐标中使用drawText。例如,我在做一个简单的扫雷软件时,希望把每个格子附近的雷数给显示在小格子里,如下图所示,就需要这样的功能。
不同的字体,字宽字高都是不一样的。所以计算文本宽度的是一个和字体相关的一个类QFontMetrics。
QPainter p(this);QFontMetrics fm = p.fontMetrics();
可以用fm.width(text)获得你想处理的字串text的宽度。而高度对于所有的字都是一样的,可以用fm.ascent()+fm.descent()来实现。ascent是指从一个字的基线(baseline)到最顶部的距离,descent是指一个字的基线到最底部的距离。关于字体的一些术语,请参考
http://book.csdn.net/bookfiles/308/10030812802.shtm
要记住,QPainter的drawText画字的基点坐标是字串的基线(不是底部,也不是顶部,而是下部)。看下面的贴图
所以,如果你想在坐标(0,0,20,20)的框正中画一个字的话,可以使用
QPoint pt((20-fm.width(text))/2,(20-(fm.ascent()+fm.descent()))/2+fm.ascent());p.drawText(pt,text);
本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息、原文链接、原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途。 谢谢合作。
原文链接:http://www.cuteqt.com/blog/?p=1029
- Qt: 在Qt中计算文本的宽度与高度
- 在Qt中计算文本的宽度与高度
- 在Qt中计算文本的宽度与高度
- Qt中计算文本的宽度与高度
- 在Qt中计算文本的宽度~
- 计算文本宽度和高度的方法
- iOS中获取文本的高度与宽度
- IOS 根据 指定的 字体类型 ,size ,计算 绘制 文本 所需要的 宽度与高度
- IOS 根据 指定的 字体类型 ,size ,计算 绘制 文本 所需要的 宽度与高度
- 计算字符串的宽度与高度
- 在onCreate()方法中获取View的宽度与高度
- [IOS 开发] NSString-计算文本的宽度和高度
- ios 动态计算文本的高度或宽度
- Swift中关于计算文本的宽度
- swift js 计算文本物理宽度 高度
- 自定义分类计算文本高度和宽度
- 计算文本的高度
- 计算字符串在画布内的高度和宽度
- ssh 公钥方式认证攻略
- Qt 实现橡皮筋线
- 指针操作:加减、解引用、下标操作
- QT多线程编程
- MFC Diary - Visual C++ 基础框架1
- 在Qt中计算文本的宽度与高度
- PostgreSQL模式匹配关键字similar to 和 like 的区别
- effective STL 读书笔记 二
- QT-杂
- 双目立体匹配回顾笔记
- QT中编写自己的动态链接库
- 四叉树与八叉树
- QT完成图片拖拽显示【本文转载自网络】
- oracle 查询效率