Для Qt 4.6.x, как автоматически изменить размер текста, чтобы он соответствовал заданной ширине?
Внутри моего QGraphicsRectItem :: paint () я пытаюсь нарисовать имя элемента внутри его rect (). Однако для каждого из различных элементов они могут иметь переменную ширину, и аналогичным образом имена могут иметь переменную длину.
В настоящее время я начинаю с максимального размера шрифта, проверяю, подходит ли он, и уменьшаю его, пока не найду подходящий размер шрифта. До сих пор я не смог найти быстрый и простой способ сделать это. Есть ли лучший или более эффективный способ сделать это?
Спасибо!
void checkFontSize(QPainter *painter, const QString& name) {
// check the font size - need a better algorithm... this could take awhile
while (painter->fontMetrics().width(name) > rect().width()) {
int newsize = painter->font().pointSize() - 1;
painter->setFont(QFont(painter->font().family(), newsize));
}
}