0

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 ベースのクラスに移動しようとしましたが、エラーが発生しました。イベントを新しいスレッドに移動できないようです。

それに関するアイデアはありますか?

4

1 に答える 1

0

残念ながら、メインの GUI スレッドとは別のスレッドで Qt GUI 要素を作成することはできません。QWebPage でのリソースの読み込みによる GUI のスローダウンを補おうとしている場合、私はあなたの思考プロセスを完全に理解しています。私はこの問題を徹底的に調査しましたが、まだ明確な答えを見つけていません。

Windows でプロキシ ルックアップに時間がかかるというバグが報告されています: https://bugreports.qt-project.org/browse/QTBUG-10106このバグは現在未解決ですが、将来解決される可能性があります。

于 2012-11-26T04:03:09.027 に答える