Для 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));
 }
}

Ответы на вопрос(7)

Ваш ответ на вопрос