0

当我QWebFrame::evaluateJavaScript(scriptSource)从主线程运行时,一切似乎都很好。但是当我尝试从不同的线程运行它时,我得到一个SyntaxError: Parse error. 即使我试图运行像1+1;.

有人可以解释为什么会发生这种情况以及这是否是预期的行为吗?

是否有可能在另一个线程中使用 QWebKit,然后在主线程中使用?

PS:我正在运行Qt4.8

4

1 回答 1

0

我对 QWebFrame 或 QT 了解不多,但以下应该是正确的。

简单来说,它的 GUI 应用程序和所有操作都必须在主线程中完成。如果您有多个线程,则必须找到一种方法将调用引导到主 gui 循环线程或主线程。

主要原因之一是应用程序可能在内部使用的线程本地存储。如果您从另一个线程执行该函数,则可能不会设置本地存储。

对于 GTK 调用,大多数(全部?)webkit 调用必须通过 gtk idle 钩子进行引导,以便它可以在正确的线程中执行。QT 中应该有等价的东西。

于 2014-02-20T20:07:56.290 回答