天天看點

qt 計算字元串寬度高度

終于終于找到 qt 正确的計算字元串所需寬高方法了,網上現有的都有弊端

我想要的是給定寬度計算出字元串所需高度,在計算時先保證單詞完整性,如果單詞整個寬度超出給定寬度,再進行任意位置換行,再計算高度。QFontMetrics 隻能二選一

一般方法:

QFontMetrics fm(this->font());
	QRect rect(0, 0, w, this->height());
	QRect rt = fm.boundingRect(rect, Qt::AlignCenter | Qt::TextSingleLine, "simple"); //
           

高配方法:

QTextOption toption(Qt::AlignCenter);
	toption.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
	QRect rect = option.rect;
	rect.setHeight(500);
	rect = painter->boundingRect(rect, "I am the king of the world", toption).toRect();
           

這樣計算的有一下好處先按照完整單詞計算,如果整個單詞寬度大于指定寬度則強制對單詞截斷換行

繼續閱讀