Qt 5 QWebEngine 页面 printToPdf C2668 对重载函数的模糊调用
Qt 5 QWebEngine page printToPdf C2668 ambiguous call to overloaded function
我有下一个代码:
page.printToPdf("test.pdf");
但是当使用 VS2015 编译它时我得到这个错误:
error: C2668: 'QWebEnginePage::printToPdf': ambiguous call to overloaded function
并且无法理解原因,因为从文档中可以看出:
printToPdf(const QString &filePath, ...)
printToPdf(FunctorOrLambda resultCallback, ...)
这是因为 QString
和 QByteArray
都有一个 const char *str
构造函数。所以编译器无法判断调用哪个函数。
第一个界面使用 QString
,第二个界面使用 QByteArray
。看着 qt docs
The resultCallback must take a const reference to a QByteArray as parameter.
因此,显式传递 QString
或 QByteArray
应该可以解决问题。例如,
QString str = "test.pdf";
page.printToPdf(str);
我有下一个代码:
page.printToPdf("test.pdf");
但是当使用 VS2015 编译它时我得到这个错误:
error: C2668: 'QWebEnginePage::printToPdf': ambiguous call to overloaded function
并且无法理解原因,因为从文档中可以看出:
printToPdf(const QString &filePath, ...)
printToPdf(FunctorOrLambda resultCallback, ...)
这是因为 QString
和 QByteArray
都有一个 const char *str
构造函数。所以编译器无法判断调用哪个函数。
第一个界面使用 QString
,第二个界面使用 QByteArray
。看着 qt docs
The resultCallback must take a const reference to a QByteArray as parameter.
因此,显式传递 QString
或 QByteArray
应该可以解决问题。例如,
QString str = "test.pdf";
page.printToPdf(str);