2

こんにちは、スレッドでメソッド load() を使用して QWebView を使用するにはどうすればよいですか? メイン(!)スレッドでQWebViewを作成しましたが、QWebViewでload()を使用できません(他のスレッドからのシグナル/スロットを使用して実行します):

QWebView wv = new QWebView(); //ok QUrl url = new QUrl(" http://somesite.com/ "); //OK wv.load(url); //エラー: QObject: 別のスレッドにある親の子を作成できません。

C ++では機能します。私を助けてください!

ps私の英語でごめんなさい

4

1 に答える 1

1

これは古い質問であることは知っていますが、興味のある人にとっては、問題は別のスレッドで子を作成することです。所有スレッドにマーシャリングするには、次のようにします。

public void loadURL(String url) {  
    QApplication.invokeLater(new LoadURL(url));
}

private class LoadURL implements Runnable {
    private String url;
    public LoadURL(String url) {
        this.url = url;
    }
    public void run() {
        QNetworkRequest nreq = new QNetworkRequest(new QUrl(this.url));
        load(nreq);
    }
}
于 2010-11-30T04:34:05.193 に答える