Я рисую в своей программе Qt на QPainter текст и различные элементы вокруг него. Мне нужно получить размеры в пикселях, которые будет занимать этот текст.
Можно ли как-то получить размеры в пикселях, зная текстовую строку и шрифт?
Спасибо.
Я рисую в своей программе Qt на QPainter текст и различные элементы вокруг него. Мне нужно получить размеры в пикселях, которые будет занимать этот текст.
Можно ли как-то получить размеры в пикселях, зная текстовую строку и шрифт?
Спасибо.
Вы можете использовать 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();
Функция boundingRect() QPainter вернет прямоугольник, который можно использовать для получения ширины и высоты:
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();