在Qt中计算文本的宽度与高度
来源:互联网 发布:下载软件就失败 编辑:程序博客网 时间:2024/05/18 06:22
在写一些需要精确布局或者排版的软件时候,我们需要知道文本的宽度和高度,保证我们在适当的坐标中使用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 计算文本物理宽度 高度
- 自定义分类计算文本高度和宽度
- 计算文本的高度
- 计算字符串在画布内的高度和宽度
- ORA-08177: 无法连续访问此事务处理
- jax-rs(Java API for RESTful Web Services) 实践教程 之五 —— 注入全局变量 和 rest的生命周期
- ORACLE常用数值函数、转换函数、字符串函数介绍
- 关于虚拟继承的思考
- 简约的极致:Firefox完美模仿Chrome攻略
- 在Qt中计算文本的宽度与高度
- 3D向量及矩阵变换简单剖析(1)
- 最近的工作体会
- IE与FireFox的showModalDialog
- Testing学习资料及网站
- 教你如何从容面对劳动仲裁
- 解决Oracle LogMiner获取数据字典文件需要修改UTL_FILE_DIR的问题
- udev(一)-- 什么是udev
- 我实现比如说 我要获得 用户在玩比如 黄金矿工 游戏的 金钱数 要怎么实现啊