我正在学习 C++ Programming with Qt。 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;
}
我该如何解决?
最佳答案
下面的表达式使用了copy-initialization :
QFontMetricsF metrics = qApp->font();
copy-initialization需要从 QFont
到 QFontMetricsF
的隐式转换,但是 QFontMetricsF
的构造函数采用 QFont
是显式的。这就是为什么你必须使用 direct-initialization (()
或 {}
):
QFontMetricsF metrics(qApp->font());
QFontMetricsF metrics{qApp->font()};
关于c++ - 错误 :conversion from 'QFont' to non-scalar type 'QFontMetricsF' requested-Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29118342/