2009-12-04 72 views
2

美好的一天, 如何在線程中使用帶方法load()的QWebView?我已經在主(!)線程中創建了QWebView,但是我不能在QWebView中使用load()(使用來自其他線程的信號/插槽來做到這一點):QWebView的多個實例(qt jambi)

QWebView wv = new QWebView(); // ok QUrl url = new QUrl(「http://somesite.com/」); //好吧 wv.load(url); //錯誤:QObject:無法爲處於不同線程中的父項創建子項。

在c + +它的工作。請幫幫我!

p.s.對不起我的英語

回答

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); 
    } 
}