Qt: 在Qt中计算文本的宽度与高度
来源:互联网 发布:麻省理工学院算法导论 编辑:程序博客网 时间:2024/06/06 13:25
在写一些需要精确布局或者排版的软件时候,我们需要知道文本的宽度和高度,保证我们在适当的坐标中使用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中计算文本的宽度~
- Qt 中获取字体的像素高度和宽度
- Qt 中获取字体的像素高度和宽度
- Qt QPainter中获取字体的像素高度和宽度
- 计算文本宽度和高度的方法
- iOS中获取文本的高度与宽度
- IOS 根据 指定的 字体类型 ,size ,计算 绘制 文本 所需要的 宽度与高度
- IOS 根据 指定的 字体类型 ,size ,计算 绘制 文本 所需要的 宽度与高度
- 计算字符串的宽度与高度
- 在onCreate()方法中获取View的宽度与高度
- [IOS 开发] NSString-计算文本的宽度和高度
- ios 动态计算文本的高度或宽度
- Swift中关于计算文本的宽度
- swift js 计算文本物理宽度 高度
- jquery上传插件 uploadify 的使用
- jquery获取自定义标签的值
- jQuery.extend函数详细用法!
- css3实现的一些灰色的导航条按钮
- MySQL优化之索引
- Qt: 在Qt中计算文本的宽度与高度
- Android手写文字(涂鸦)
- oracle分区表的使用和管理
- 子查询中不能包含order by
- 基层技术管理者必备
- 单链表常见操作
- 函数式编程----lambda演算
- TraceRoute(tracert)实现原理
- 互联网性能测试杂记