QWebFrame :: evaluateJavaScript(scriptSource)在主线程中未执行时导致“SyntaxError:Parse error”

时间:2014-02-20 13:22:28

标签: multithreading qt webkit qtwebkit qwebkit

当我从主线程运行QWebFrame::evaluateJavaScript(scriptSource)时,一切似乎都运行正常。但是当我尝试从不同的线程运行它时,我得到SyntaxError: Parse error。即使我正在尝试运行像1+1;这样的简单代码。

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

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

P.S。:我正在运行Qt4.8

1 个答案:

答案 0 :(得分:0)

我对QWebFrame或QT了解不多,但以下情况应该成立。

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

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

对于GTK调用,大多数(全部?)webkit调用必须通过gtk idle hook进行引导,以便它在适当的线程中执行。在QT中应该有相同的东西。