2

美好的一天,我如何在线程中使用带有方法 load() 的 QWebView?我已经在 main(!) 线程中创建了 QWebView,但我不能将 load() 与 QWebView 一起使用(使用来自其他线程的信号/插槽来执行此操作):

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 回答