ошибка: нет подходящей функции для вызова - PullRequest
0 голосов
/ 18 августа 2011

Я получаю эту ошибку:

main.cpp:31: error: no matching function for call to 'QWebFrame::addToJavaScriptWindowObject(QString, Eh*&)'
candidates are: void QWebFrame::addToJavaScriptWindowObject(const QString&, QObject*)

Это исходный код:

#include <string>
#include <QtGui/QApplication>
#include <QWebFrame>
#include <QWebView>
#include <QGraphicsWebView>
#include <QWebPage>
#include "html5applicationviewer.h"

class Eh
{
    int lol()
    {
        return 666;
    }
};

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    Html5ApplicationViewer viewer;
    viewer.setOrientation(Html5ApplicationViewer::ScreenOrientationAuto);
    viewer.showExpanded();
    viewer.loadFile(QLatin1String("html/index.html"));

    QWebPage *page = viewer.webView()->page();
    QWebFrame *frame = page->mainFrame();

    Eh *s = new Eh();

    frame->addToJavaScriptWindowObject(QString("test"), s);

    return app.exec();
}

Я попытался дать новый экземпляр Eh и Ehсам класс.В обоих случаях это не удается.Также я не могу дать не указатель этого, так как new возвращает указатель.

Мой вопрос таков: почему это Eh*&, а не Eh*?

1 Ответ

1 голос
/ 18 августа 2011

addToJavaScriptWindowObject принимает QObject* в качестве второго параметра. Так что вам нужно иметь Eh наследовать от QObject.

Попробуйте что-то вроде этого:

class Eh : public QObject {
    Q_OBJECT
public:
    Eh(QObject *parent = 0) : QObject(parent) {
    }

    int lol() {
        return 666;
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...