Qt 5 QWebEngine 页面 printToPdf C2668 对重载函数的模糊调用
Posted
技术标签:
【中文标题】Qt 5 QWebEngine 页面 printToPdf C2668 对重载函数的模糊调用【英文标题】:Qt 5 QWebEngine page printToPdf C2668 ambiguous call to overloaded function 【发布时间】:2016-11-07 20:22:34 【问题描述】:我有下一个代码:
page.printToPdf("test.pdf");
但是当使用 VS2015 编译它时,我得到了这个错误:
error: C2668: 'QWebEnginePage::printToPdf': ambiguous call to overloaded function
并且无法理解为什么,因为从文档中:
printToPdf(const QString &filePath, ...)
printToPdf(FunctorOrLambda resultCallback, ...)
【问题讨论】:
【参考方案1】:这是因为QString
和QByteArray
都有一个const char *str
构造函数。所以编译器无法判断调用哪个函数。
第一个接口使用QString
,而第二个使用QByteArray
。看着 qt docs
resultCallback 必须采用对 QByteArray 的 const 引用作为参数。
因此,显式传递QString
或QByteArray
应该可以解决问题。例如,
QString str = "test.pdf";
page.printToPdf(str);
【讨论】:
以上是关于Qt 5 QWebEngine 页面 printToPdf C2668 对重载函数的模糊调用的主要内容,如果未能解决你的问题,请参考以下文章
实现QObject与JavaScript通讯(基于QWebEngine + QWebChannel)