QWebView::setContent()一部のHTMLコンテンツをQWebViewにロードするために使用する必要があるアプリケーションがあります。これはすべて、ARMv5プロセッサ(400 MHzと考えてください)を搭載した組み込みデバイスで発生します。ほとんどの場合、妥当な時間(最大5秒)でページをロードできますが、ロードに時間がかかるコンテンツ(300KBのコンテンツの場合は最大30秒)がある場合があります。
問題は、setContent呼び出しがメインスレッドをブロックすることです。ロード中にイベントを処理できるようにする必要があります。ユーザーがこれ以上待たないことを決定した場合は、ロードをキャンセルすることもできます。
setContentイベント処理をブロックせず、必要に応じてキャンセルできるように、他のスレッドで呼び出しを実行することを考えていました。しかし、 「ウィジェットはGUIスレッドで作成する必要がある」という恐ろしいものがあり、これを簡単に解決する方法がわかりません。
QWebView::setContent別のスレッドで実行することは可能ですか?もしそうなら、どのように?そうでない場合、実行中にGUIイベントを処理することは可能setContentですか?setContent通話を「キャンセル」することはできますか?
編集
もう少し明確にするために、私が本当に興味を持っているのは、setContent呼び出しを停止したり、GUIメッセージを処理したりして、インターフェースが応答性を維持し、を使用して大量のデータが渡されるようにする方法setContentです。
編集2
さらに明確にするために、私は長くて静的なコンテンツを扱っています。つまり、JavaScriptはなく、静的なHTMLがたくさんあり、ユーザーがより多くのコンテンツをロードしている間でもスクロールしたいと思っています。主なアイデアは、ページが完全にロードされていない場合でも、彼女/彼がページを下に移動できるようにすることです。