Pau*_*xon 74
您可以使用QFontMetrics类 - 请参阅width()方法,该方法可以为您提供给定QString的宽度.
QFont myFont(fontName, fontSize);;
QString str("I wonder how wide this is?");
QFontMetrics fm(myFont);
int width=fm.width(str);
Run Code Online (Sandbox Code Playgroud)
Seb*_*247 13
从 Qt 5.11 开始,您必须使用类的horizontalAdvance()方法QFontMetrics而不是width(). width()现在已经过时了。
QFont myFont(fontName, fontSize);;
QString str("I wonder how wide this is?");
QFontMetrics fm(myFont);
int width=fm.horizontalAdvance(str);
Run Code Online (Sandbox Code Playgroud)
Ale*_*der 12
在paintEvent中
QString text("text");
QFontMetrics fm = painter.fontMetrics();
int width = fm.width(text);
Run Code Online (Sandbox Code Playgroud)
作为@Paul的答案的补充,我发现在绘制文本时(Linux上的Qt4.8),实际绘制的文本的宽度与QFontMetrics::boundingRect返回的宽度相比通常是关闭的.在我的情况下,这幅画往往太宽.
如果在绘制文本时想要准确的结果(例如,在文本周围绘制尺寸矩形),最好使用boundingRect直接提供的函数QPainter.
| 归档时间: |
|
| 查看次数: |
25652 次 |
| 最近记录: |