在线提供的教程都没有显示如何创建Qt HTML5应用程序。理想情况下,我只需要一种方法来在webkit和Qt之间发送数据(字符串可以做)。
当我创建Qt HTML5应用程序时,它会生成
那么如何在C ++中添加一个与浏览器通信的函数呢?如何在浏览器中添加一个函数来与C ++通信?
答案 0 :(得分:17)
This example已经过时但仍然有效且非常简洁。
另外,您可能需要查看qtwebkit-bridge和tutorial。
修改强>
添加名为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;