在Qt中测量文字宽度
使用Qt框架,我如何测量用给定字体/样式呈现的文本的宽度(以像素为单位)?
你可以使用QFontMetrics类 – 请参阅width()方法,它可以给你一个给定的QString的宽度。
QFont myFont(fontName, fontSize);; QString str("I wonder how wide this is?"); QFontMetrics fm(myFont); int width=fm.width(str);
有点晚了,但也许有助于某人
在paintEvent中
QString text("text"); QFontMetrics fm = painter.fontMetrics(); int width = fm.width(text);
Chears亚历山大
作为@Paul答案的补充,我发现在绘制文本(Linux上的Qt4.8)时,实际绘制的文本的宽度与QFontMetrics::boundingRect
返回的宽度相比通常是closures的。 在我的情况下,这幅画往往太广泛了。
如果在绘制文本时需要精确的结果(例如绘制围绕文本绘制的维矩形),最好使用由QPainter
直接提供的boundingRect
函数。