从Javascript代码调用Qt函数

从Javascript代码调用Qt函数,javascript,c++,qt,Javascript,C++,Qt,我有一个带有Webview的Qt项目,它正在加载一个HTML文件,该文件是Javascriptfiles。现在我想通过JavaScript在Qt端调用一个函数 因此,具有以下Qt功能: void MainWIndow::myFunction(angle) { qDebug() << angle; } 如何执行此操作?如果Qt是您的JavaScriptWindowObject,您应该使用: 在Qt代码隐藏(main窗口class)中: MainWIndow.h文件: publ

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

因此,具有以下Qt功能:

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

如何执行此操作?

如果
Qt
是您的
JavaScriptWindowObject
,您应该使用:

在Qt代码隐藏(
main窗口
class)中:

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);
}

谢谢。如何使用
populateJavaScriptWindowObject()
中的
addToJavaScriptWindowObject()
方法将QT转换为JavaScriptWindowObject。Thx将尽快尝试
function angleChanged(angle) {
    Qt.myFunction(angle);
}