我在 QPainter 上的 Qt 程序中绘制文本和围绕它的各种元素。我需要获取该文本将占用的像素大小。
我可以以某种方式获得以像素为单位的大小,知道文本字符串和字体吗?
谢谢。
您可以为此目的使用 QFontMetrics。以下是来自 Qt Docs 的示例。
QFont font("times", 24);
QFontMetrics fm(font);
int pixelsWide = fm.width("What's the width of this text?");
int pixelsHigh = fm.height();
QPainter 的 boundingRect() 将返回一个矩形,您可以使用它来获取“宽度”和“高度”:
QPainter qp(this);
QFont font = qp.font();
font.setPixelSize(24);
qp.setFont(font);
qp.setPen(Qt::white);
QString text = "Hello, World!";
QRect br = qp.boundingRect(0, 0, 150, 30, 0, text);
qDebug() << br.width();
qDebug() << br.height();