我在主线程中创建了一个 QWebPage(你不能在其他任何地方创建它)。我想使用 Qt 4.6 中引入的 QWebElement API 来操作这个页面,但是在一个单独的线程中。这样该线程将获取对页面的引用并执行我需要的必要的树遍历和属性更改。
正如Threads and QObjects文档页面所解释的,在不拥有 QObjects 的线程中操作 QObjects 是不安全的,除非开发人员可以确保相关 QObject 在此操作进行时不会处理事件。
现在,这个 QWebPage 也显示在 QWebView 中,但是在等待工作线程完成时主线程将被阻塞(实际上其中很多,在许多不同的页面上工作)。因此,在操作进行时主事件循环不会运行。
因此,我相信手术是安全的。我弄错了吗?我错过了什么吗?我基本上是在寻求保证,这不会在我的脸上爆炸......