错误:从'QFont'转换为非标量类型'QFontMetricsF'requested-Qt

时间:2015-03-18 09:30:56

标签: c++ qt

我从Qt 的 C ++编程中学习。 Painter'章节中关于图表的练习之一。

这是我的代码:

#include <QFont>
#include<QFontMetricsF>
QRectF Node::outlineRect() const
{
    const int Padding = 8;
    QFontMetricsF metrics = qApp->font();
    QRectF rect = metrics.boundingRect(myText);
    rect.adjust(-Padding, -Padding, +Padding, +Padding);
    rect.translate(-rect.center());
    return rect;
}

我该如何解决?

1 个答案:

答案 0 :(得分:5)

以下表达式使用copy-initialization

QFontMetricsF metrics = qApp->font();

copy-initialization需要从QFontQFontMetricsF的隐式转换,但QFontMetricsF的{​​{1}}构造函数是明确的。这就是您必须使用direct-initializationQFont())的原因:

{}