c++ - 错误 :conversion from 'QFont' to non-scalar type 'QFontMetricsF' requested-Qt

标签 c++ qt

我正在学习 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需要从 QFontQFontMetricsF 的隐式转换,但是 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/

相关文章:

c++ - 为什么 Qt 看不到我的插槽?

qt - 向 QTreeView 列添加填充

javascript - QWebChannel 将空 QVariant POD 结构发送到 JavaScript

c++ - 在用 Qt 编写时解析 XML 文件

c++ - C++ 代码从 Linux 到 Windows 的转换

c# - 如何从 C++/C# 与 silverlight 网站交互

c++ - 即使检查了两个索引的边界,动态二维数组也存在奇怪的访问冲突

ios - 在 ios 设备中测试 Qt 应用程序

c++ 类是从特定类派生的吗?

c++ - OpenCV 中文档的模式提取层