この例は古いですが、まだ機能しており、非常にシンプルでクリーンです。
また、qtwebkit-bridgeとチュートリアルをご覧になることもできます。
編集
というファイルを追加myclass.h
#include "html5applicationviewer/html5applicationviewer.h"
class MyClass : public Html5ApplicationViewer
{
Q_OBJECT
public:
explicit MyClass(QWidget *parent=0);
private slots:
void addToJavaScript();
public slots:
QString test(const QString ¶m);
};
というファイルを追加myclass.cpp
#include <QDebug>
#include <QGraphicsWebView>
#include <QWebFrame>
#include "myclass.h"
MyClass::MyClass(QWidget *parent) : Html5ApplicationViewer(parent) {
QObject::connect(webView()->page()->mainFrame(),
SIGNAL(javaScriptWindowObjectCleared()), SLOT(addToJavaScript()));
}
void MyClass::addToJavaScript() {
webView()->page()->mainFrame()->addToJavaScriptWindowObject("MyClass", this);
}
QString MyClass::test(const QString ¶m) {
qDebug() << "from javascript " << param;
return QString("from c++");
}
あなたの.pro
追加で
SOURCES += main.cpp myclass.cpp
HEADERS += myclass.h
あなたの.html
追加で
try {
alert(MyClass.test("test string"));
} catch(err) {
alert(err);
}
あなたのmain.cpp
追加には以下が含まれます:
#include "myclass.h"
そして変更:
Html5ApplicationViewer viewer;
に:
MyClass viewer;