在Qt中计算文本的宽度~
来源:互联网 发布:python 淘宝联盟 爬虫 编辑:程序博客网 时间:2024/05/22 13:24
在Qt中计算文本的宽度~
2010-11-18 17:06:05| 分类: Qt links | 标签: |字号大中小 订阅
在写一些需要精确布局或者排版的软件时候,我们需要知道文本的宽度和高度,保证我们在适当的坐标中使用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);
- 在Qt中计算文本的宽度~
- Qt: 在Qt中计算文本的宽度与高度
- 在Qt中计算文本的宽度与高度
- 在Qt中计算文本的宽度与高度
- Qt中计算文本的宽度与高度
- Swift中关于计算文本的宽度
- [C++] 在imagemagick里面计算文本的宽度
- NSString-计算文本的长度或者宽度
- NSString-计算文本的长度或者宽度
- NSString-计算文本的长度或者宽度
- 使用javascript计算文本的宽度
- 计算文本宽度和高度的方法
- 在windows8 metro中计算TextBox的实际宽度ActualWidth
- [IOS 开发] NSString-计算文本的宽度和高度
- ios 动态计算文本的高度或宽度
- jQuery计算文本宽度和input标签根据输入字符动态自适应宽度的实现
- jQuery计算文本宽度和input标签根据输入字符动态自适应宽度的实现
- 得到文本的宽度
- Build netCDF, IO/API and CMAQ
- 查找算法总结
- Project Eluer14
- Use of the same entity name twice: XXX
- java读写文件大全 .
- 在Qt中计算文本的宽度~
- PostGreSql资料收集
- Oracle学习笔记之一SQL查询总结
- 有写编译器的冲动?进来看看!
- 多属性TopK——NRA算法(JAVA)实现
- 如何修改EXTJS的collapseMode : 'mini'样式(未解决)
- C# OpenCV学习笔记一之准备工作
- 在Html页面上添加锚点
- dwr.jar包的配置--ajax技术