javascript - 从 Javascript 代码调用 Qt 函数

标签 javascript c++ qt

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

因此,具有以下 Qt 函数:

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

我想从 JavaScript 端调用它:

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

我该怎么做?

最佳答案

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

在后面的 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);
}

关于javascript - 从 Javascript 代码调用 Qt 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25814026/

相关文章:

javascript - 在 express 路由器和中间件之间传递数据

python - Python 的 C 和 C++ 库如何跨平台?

c++ - ld : foo. o :foo. h :6 multiple definition of `bar' foo. h:6: 首先在这里定义

c++ - Qt 多边形的线性渐变

python - 发送添加了用户代理的 QHTTP 请求

javascript - AWS S3 ZIP 文件上传损坏存档文件

javascript - 如何并排显示两个div,左侧div固定位置,右侧div垂直滚动

qt - 绕给定点旋转

javascript - 使用 Javascript 和 JSON 构建树

c++ - 如何一次删除 `cmake -D` 定义的所有变量?