QPainter的drawText的问题
QPainter绘制和QFontMetricsF使用同样的字体。
QFontMetricsF fontMetrics(gSlotFont);
qreal wid = fontMetrics.width(name);
qreal height = fontMetrics.height();
painter->setPen(Qt::black);
painter->setFont(gSlotFont);
// painter->drawText( namePos, QString(name) );
QRectF tmpRect(namePos, QSizeF(wid, height));
QRectF tmpRect1;
painter->drawText( tmpRect, Qt::AlignLeft, QString(name), &tmpRect1 );
qDebug() << tmpRect1;
对于同样一段英文, fontMetrics.width(name)计算出的字体宽度和QPainter::drawText返回的tmpRect1的实际绘制的长宽不一致。
这是什么原因?请指教 !
[解决办法]
因为各种字体的上下部分都留有一段空白区域吧,所以按你计算出的区域绘制,只有宽度是对的,高度则不对。
[解决办法]
问题在:gSlotFont
你用gSlotFont的参数初始化一个新QFont变量,再用这个新变量替换原来的gSlotFont,看看效果。
[解决办法]
楼主你试试换种等宽字体,看得出来的结果是不是一致的?我记得以前写的代码,宽度是正确的。
[解决办法]