从Javascript代码调用Qt函数

时间:2014-09-12 17:52:21

标签: javascript c++ qt

我有一个带有Webview的Qt项目,它正在加载一个Javascript文件的HTML文件。现在我想通过JavaScript在Qt端调用一个函数。

所以,具有以下Qt功能:

void MainWIndow::myFunction(angle)
{
    qDebug() << angle;
}

我想从JavaScript方面调用它:

function angleChanged(angle){
    Qt.MainWIndow::myFunction(angle);
}

我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果QtJavaScriptWindowObject,则应使用:

在你的Qt代码后面(MainWIndow类):

MainWIndow.h档案:

public slots:
    void populateJavaScriptWindowObject();
    void myFunction(int angle);

MainWIndow.cpp文件:

//in constructor
connect(ui->webView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()),
         this, SLOT(populateJavaScriptWindowObject()));

//in populateJavaScriptWindowObject SLOT
void MainWindow::populateJavaScriptWindowObject()
{
    QWebFrame *frame = ui->webView->page()->mainFrame();
    frame->addToJavaScriptWindowObject("Qt", this);
}

在您的Javascript代码中:

function angleChanged(angle) {
    Qt.myFunction(angle);
}