Qt 5 QWebEngine页面printToPdf C2668对重载函数的模糊调用

时间:2016-11-07 20:22:34

标签: c++ qt visual-studio-2015 qt5 qtwebengine

我有下一个代码:

page.printToPdf("test.pdf");

但是当使用VS2015编译它时,我收到此错误:

error: C2668: 'QWebEnginePage::printToPdf': ambiguous call to overloaded function

并且无法理解为什么因为来自文档:

printToPdf(const QString &filePath, ...)
printToPdf(FunctorOrLambda resultCallback, ...)

1 个答案:

答案 0 :(得分:3)

这是因为QStringQByteArray都有const char *str构造函数。因此编译器无法告诉调用哪个函数。

您使用QString作为第一个界面,而第二个使用QByteArray。看 qt docs

  

resultCallback必须将对QByteArray的const引用作为参数。

因此,明确传递QStringQByteArray应该可以解决问题。例如,

QString str = "test.pdf";
page.printToPdf(str);