是否可以在基于QThread的类中使用QWebPage?

时间:2012-11-02 14:31:45

标签: qt4 qt4.8

在基于QThread的类中,我有一个QWebPage,当loadFinished()时,我需要解析内容,它会卡住UI。所以我把所有东西放在一个线程中:

class Thread: public QThread
{
   public:
      Thread (QObject *p): QThread (p)
      {
         moveToThread (this);
         connect (&page, SIGNAL(loadFinished(bool)), SLOT(loadFinished(bool)));
      }
   private slots:
      void loadFinished (bool ok)
      { 
         // never get called, unless I remove the `moveToThread(this)`
      }
};

我也尝试将QWebPage的事件移动到这个基于qthread的类,我得到了错误,似乎你无法将事件移动到新的线程。

关于它的任何想法?

1 个答案:

答案 0 :(得分:0)

不幸的是,无法在与主GUI线程不同的线程上创建Qt GUI元素。如果您正在尝试补偿由于QWebPage中的资源加载导致的GUI减速,我完全理解您的思考过程。我已经彻底调查了这个问题,但还没有找到答案。

据报道,Windows中代理查找的错误需要很长时间:https://bugreports.qt-project.org/browse/QTBUG-10106此错误目前尚未解决,但未来可能会有解决方案。