My requirements are a bit different, but here's my code.
void
TextItem::setGeometry(const QRectF& rect)
{
int size = qMin(static_cast<int>(rect.height()), 40);
theFont.setPixelSize(size);
while(fm.width(toPlainText()) > rect.width())
{
size -= 5;
theFont.setPixelSize(size);
}
setFont(theFont);
setPos(rect.topLeft());
}
void
TextItem::setGeometry(const QRectF& rect)
{
QFont theFont = font();
int size = qMin(static_cast<int>(rect.height()), 40);
theFont.setPixelSize(size);
QFontMetricsF fm(theFont);
while(fm.width(toPlainText()) > rect.width())
{
size -= 5;
theFont.setPixelSize(size);
fm = QFontMetricsF(theFont);
}
setFont(theFont);
setPos(rect.topLeft());
}
To copy to clipboard, switch view to plain text mode
Bookmarks