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