gpt4 book ai didi

javascript - Qt QWEBview JavaScript 回调

转载 作者:可可西里 更新时间:2023-11-01 02:19:08 25 4
gpt4 key购买 nike

如何将函数“指针”从 JavaScript 传递到插槽?

在 JavaScript 中:

function f1()
{
alert("f1");
}
qtclass.submit(f1);

在 Qt 中:

public slots:
void submit(void * ptr)
{
(void)ptr;
}

我需要“f1”函数,以便在某些处理完成后从 C++ 的 JavaScript 中触发。我也事先不知道函数指针的名称。

最佳答案

您应该能够使用 QWebFrame::evaluateJavaScript 执行您的脚本方法。查看以下示例是否适合您:

初始化 WebView :

QWebView *view = new QWebView(this->centralWidget());
view->load(QUrl("file:///home//test.html"));
connect(view, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));

loadFinished 信号处理程序:

void MyTestWindow::loadFinished(bool)
{
QVariant f1result = ((QWebView*)sender())->page()->mainFrame()->evaluateJavaScript("f1('test param')");
qDebug() << f1result.toString();
}

测试.html:

<head>
<script LANGUAGE="JavaScript">
function f1 (s)
{
alert (s)
return "f1 result"
}
</script>
</head>
<body>
test html
</body>

evaluateJavaScript 应触发警告消息框并返回带有 f1 函数结果的 QVariant。

希望这对你有帮助,问候

关于javascript - Qt QWEBview JavaScript 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4975658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com