Qt 和 JavaScript 的交互应用
QtWebkit 和 javascript 的交互应用主要通过下面 2 这个方法实现:
void QWebFrame::addToJavaScriptWindowObject (
const QString &name, // *object 在 javascript 中的别名
QObject *object // 需要在 javascript 中引用的 Qt 对象的实例指针
);
QVariant QWebFrame::evaluateJavaScript (
const QString &scriptSource // javascript 中的函数名及相关参数
);
调用示例如下:
MyPage.h
#include <QWebPage>
#include <QWebFrame>
class MyPage : public QWebPage
{
public:
MyPage(QObject *parent=0): QWebPage(parent) { }
// Overload. Enable the mouse dragging/zooming.
virtual QString userAgentForUrl(const QUrl& url) const {
return "Chrome/1.0";
}
};
MyWidget.h
class MyWidget : public QWidget
{
Q_OBJECT
……
public slots:
void qtSlot(QString str1, QString str2);
private:
MyPage *m_page;
……
}
MyWidget.cpp
// 添加 Qt 的对象别名到 js
m_page->mainFrame()->addToJavaScriptWindowObject(“qtObj”, this);
// Qt 直接调用 js function,字符串参数必需加单引号