在我的QGraphicsRectItem :: paint()中,我試圖在它的rect()中繪製該項目的名稱。但是,對於每個不同的項目,它們可以具有可變的寬度,並且類似的名稱可以具有可變的長度。對於Qt 4.6.x,如何自動調整文本大小以適應指定的寬度?
目前我以最大字體大小開始,檢查它是否適合並遞減,直到找到適合的字體大小爲止。到目前爲止,我還沒有找到一個快速簡單的方法來做到這一點。有沒有更好或更有效的方法來做到這一點?
謝謝!
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));
}
}
參見[這個問題](http://stackoverflow.com/q /1329652分之36575192)。 – 2016-11-29 14:28:53