QT和JavaScript互调

来源:互联网 发布:适合mac的无线鼠标 编辑:程序博客网 时间:2024/06/07 07:00

QT和JavaScript互调
一、QT调用JavaScript中函数
1.加载html文件
QWebView *view = NULL;
view = new QWebView();
QWebSettings *pWebSettings = view->page()->settings();
pWebSettings->setAttribute(QWebSettings::JavascriptEnabled,true);
view->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
view->load(QUrl("
file:///C://Users//Evan//Desktop//abc//QtTestBaiduMap//BaiduMap//baidumap.html"));
view->show();
2.html文件中实现函数
function Fun()
{
 alert("Use JavaScript Fun!");
}
3.调用函数
QMessageBox::warning(NULL, "Warning", "Debug Ok");
view->page()->mainFrame()->evaluateJavaScript("Fun();");

二、JavaScript调用QT函数
1.继承类,需要调用的函数放到槽中
class JavaClass : public QObject
{
    Q_OBJECT
public:
    JavaClass();

public slots:
    void TestFun();
};
JavaClass::JavaClass()
{

}

void JavaClass::TestFun()
{
    qDebug()<<"Test";
}
2.向JavaScript中注册函数
JavaClass ttt;
QMessageBox::warning(NULL, "Warning", "Debug Ok");
view->page()->mainFrame()->addToJavaScriptWindowObject("JavaFun", &ttt);
3.JavaScript调用函数
try{
    JavaFun.TestFun();
    alert("Ok!");
}
catch(e) {
    alert("Error!");
}

0 0