我有下一个代码:
page.printToPdf("test.pdf");
但是当使用VS2015编译它时,我收到此错误:
error: C2668: 'QWebEnginePage::printToPdf': ambiguous call to overloaded function
并且无法理解为什么因为来自文档:
printToPdf(const QString &filePath, ...)
printToPdf(FunctorOrLambda resultCallback, ...)
答案 0 :(得分:3)
这是因为QString
和QByteArray
都有const char *str
构造函数。因此编译器无法告诉调用哪个函数。
您使用QString
作为第一个界面,而第二个使用QByteArray
。看 qt docs
resultCallback必须将对QByteArray的const引用作为参数。
因此,明确传递QString
或QByteArray
应该可以解决问题。例如,
QString str = "test.pdf";
page.printToPdf(str);