2012-03-02 69 views
8

對於我的一個項目,我做了一個QWebView。一切工作正常,但是當我在學校使用它時,我得到一個錯誤,因爲代理沒有定義。我如何能夠自動檢測代理,就像在Firefox和IE中一樣?如何自動檢測代理?

我發現這QNetworkProxyFactory

setUseSystemConfiguration(bool enable) 

但我找不到如何使用它。

回答

11

由於setUseSystemConfiguration是一個靜態方法,下面可能做你需要的東西:

QNetworkProxyFactory::setUseSystemConfiguration(true); 
+0

我把它放在主? – Moustachauve 2012-03-02 01:15:45

+0

這可能是一個好地方。只需在創建QWebView之前創建該調用即可。 – 2012-03-02 01:40:29

+0

當我嘗試使用它時,我得到了18個與此類似的錯誤: erreur:未定義對'_imp___ZN20QNetworkProxyFactory25setUseSystemConfigurationEb'的引用' – Moustachauve 2012-03-02 01:52:14

2

下面是使用系統定義的代理的工作示例:

QNetworkProxyQuery npq(QUrl("http://www.google.com")); 
QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::systemProxyForQuery(npq); 
if (listOfProxies.size()) 
    QNetworkProxy::setApplicationProxy(listOfProxies[0]); 
+0

我會把它放在主? – Moustachauve 2012-03-02 01:29:05

+0

是的。這設置了代理應用程序範圍。 – Koying 2012-03-02 09:30:54