Qt 伪造QWebEngine以运行Javascript代码';同步';
我正在使用Qt 伪造QWebEngine以运行Javascript代码';同步';,qt,qtwebengine,qeventloop,Qt,Qtwebengine,Qeventloop,我正在使用QWebEngine,我想同步运行一些Javascript!或者至少假装。所以我想出了一个ol'classic,使用QEventLoop等待。我从我的QWebEngineView派生类调用此代码: void MyView::doSomething() { QEventLoop loop; const QString jsCode = "console.log('hi from javascript!');"; page()->runJavaScript(
QWebEngine
,我想同步运行一些Javascript!或者至少假装。所以我想出了一个ol'classic,使用QEventLoop
等待。我从我的QWebEngineView
派生类调用此代码:
void MyView::doSomething()
{
QEventLoop loop;
const QString jsCode = "console.log('hi from javascript!');";
page()->runJavaScript(jsCode,[&](const QVariant&)
{
qDebug() << "script done!";
loop.quit();
});
qDebug() << "calling loop.exec()";
loop.exec();
qDebug() << "finished loop.exec()";
}
void MyView::doSomething()
{
QEventLoop循环;
const QString jsCode=“console.log('hi from javascript!');”;
page()->runJavaScript(jsCode,[&](constqvariant&)
{
qDebug()您是否向lambda添加了调试输出/调试以检查get是否执行?您是否可以验证您的js是否正确执行?尝试一些简单的方法,如console.log(“测试”)
@Felix我会更新这个问题,但是是的,我有调试消息来确认我的观察结果。你有没有想出解决方案?上周我一直在尝试这样做。@Akiva没有,我没有。我最终重新设计了我必须做的事。QWebEngine
缺少任何同步支持是一个原因在上个月,我又开始使用QWebKit
(这就是它在发布到Mac应用商店时遇到的问题)。有时设计有点偏颇,使这种黑客行为无法奏效:)