我从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;
}
我该如何解决?
答案 0 :(得分:5)
以下表达式使用copy-initialization:
QFontMetricsF metrics = qApp->font();
copy-initialization需要从QFont
到QFontMetricsF
的隐式转换,但QFontMetricsF
的{{1}}构造函数是明确的。这就是您必须使用direct-initialization(QFont
或()
)的原因:
{}