2016-11-07 67 views
2

我有下面的代碼:的Qt 5 QWebEngine頁printToPdf C2668曖昧調用重載函數

page.printToPdf("test.pdf"); 

但編譯時使用VS2015我收到此錯誤:

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

,並可以」不知道爲什麼,因爲從文檔:

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

回答

3

這是因爲QStringQByteArray有一個const char *str的構造函數。所以編譯器無法確定要調用哪個函數。

您使用QString作爲第一個界面,而第二個界面使用QByteArray。在 qt docs

The resultCallback must take a const reference to a QByteArray as parameter.

找因此,明確地傳遞QStringQByteArray應該解決的問題。例如,

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