问题背景:
在使用QFontMetrics时,在网上搜索到一种使用方法是从QPainter对象中获取QFontMetrics对象,然后测量需要生成的文字的宽度和高度。如下:
QFont font;
font.setPixelSize(format.textSize);
QPainter painter;
painter.setFont(font);
QFontMetrics fm = painter.fontMetrics();
QRect rect = fm.boundingRect(QRect(), alignmentFlag, text);
int width = rect.width();
int height = rect.height();
发现得到的width和height的值均不正确。
解决过程:
尝试发现,当使用QPainter绑定任意大小的QImage以后即可得到正确的文字宽高信息。如下所示
QFont font;
font.setPixelSize(format.textSize);
QPainter painter;
painter.setFont(font);
QImage img = QImage(1,1,QImage::Format_RGBA8888_Premultiplied);
img.fill(QColor(0, 0, 0, 0));
painter.begin(&img);
QFontMetrics fm = painter.fontMetrics();
QRect rect = fm.boundingRect(QRect(), alignmentFlag, text);
int w