我们如何知道字符串的宽度和高度?

Posted

技术标签:

【中文标题】我们如何知道字符串的宽度和高度?【英文标题】:How can we know the width and height of string? 【发布时间】:2011-10-24 07:28:32 【问题描述】:

我想创建一个与字符串大小完全相同的按钮,我想要字符串的宽度和高度。

【问题讨论】:

你知道字符串将被渲染的字体度量吗?因为否则你就没有机会了。 我有字符串的字体类型和像素大小。 【参考方案1】:

要手动获取字符串的大小,您需要使用QFontMetrics 类。这可以像这样手动使用:

QFont font("times", 24);
QFontMetrics fm(font);
int pixelsWide = fm.width("What's the width of this text?");
int pixelsHigh = fm.height();

如果您想为给定小部件(您可能不知道)中使用的字体计算它,那么不要构造字体度量,而是从小部件获取它:

QFontMetrics fm(button->fontMetrics());
int pixelsWide = fm.width("What's the width of this text?");
int pixelsHigh = fm.height();

然后您可以将小部件的大小调整为该值。

【讨论】:

对于 multiline 测量,您需要接受标志参数的 QFontMetrics::boundingRect 的重载。【参考方案2】:

使用QFontMetrics。

示例:http://www.developer.nokia.com/Community/Wiki/CS001349_-_Calculating_text_width_in_Qt

【讨论】:

以上是关于我们如何知道字符串的宽度和高度?的主要内容,如果未能解决你的问题,请参考以下文章

读取QR码 - base64图像高度和宽度

Swift开发教程--如何计算字符串的宽度和高度

关于操作Excel的POI我想请教下设置单元格宽度和高度的单位是啥?与厘米是不是可以转换?并且比例是多少?

iOS UILabel讲解以及根据字符串长度自动适应宽度和高度

根据字符长度怎样计算出需要显示的label宽度高度

在颤振中,我们如何按百分比设置高度或宽度?