2012-03-02 67 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