1

私は主にWeb開発者なので、私の質問は初心者のようなものになる可能性があります。

QWebViewコンテンツで動作する関数を書いています。これは、ロードされたWebページでアクションを実行するマクロスクリプトの一種です。

コードは次のようなものです。

somefunction() {

QWebView *webView;
webView->load(QUrl("http://www.google.com"));
<...> here I want to pause the code until the page is loaded <...>
here goes the code of html manipulation, click on another link
<...> here I want to pause the code until the page is loaded <...>

}

さて、「<...>ここでページが読み込まれるまでコードを一時停止したい<...>」と書いた場所では、関数を一時停止してページの読み込みが完了するまで待機させる方法がわかりません。 。私は信号とスロットについて知っています。ただし、ここでスロットを使用する場合は、別の関数(SLOT関数)で続行する必要がありますが、すべてのコードとロジックをsomefunction()に残しておきます。どうやってするか?

4

1 に答える 1

3

ネストを使用して、QEventLoopページの読み込みなどの非同期処理を同期できます。が発行されると、ループに入った場所から実行を再開するためのループloadFinishedだけが発生します。exit()

一方、処理を複数の関数(スロット)に分割することもそれほど悪くはありません。コードとロジックは、同じクラスの同じ場所にあります。

于 2010-10-21T11:56:22.460 に答える