【问题标题】:How do I get a signal from QNetworkAccessManager::networkAccessibleChanged()?如何从 QNetworkAccessManager::networkAccessibleChanged() 获得信号?
【发布时间】:2013-08-21 18:50:00
【问题描述】:
【问题讨论】:
标签:
qt
qnetworkaccessmanager
【解决方案1】:
好的,经过更多的实验,我找到了答案……
原来我的问题是我的系统上有几个以太网接口。
在我的问题链接的讨论中,建议添加以下代码:
QNetworkAccessManager* mNetworkAccessManager = new QNetworkAccessManager();
QNetworkConfigurationManager manager;
mNetworkAccessManager->setConfiguration(manager.defaultConfiguration());
QNetworkAccessManager::setConfiguration() 的文档表明默认配置是自动使用的;所以这是不必要的,但它让我走上了正轨。
我的问题是默认配置附加到与我的连接所经过的接口不同的接口;所以我做了以下事情:
QString ifName = "eth2";
QNetworkAccessManager* pNetworkAccessManager = new QNetworkAccessManager();
QNetworkConfigurationManager manager;
foreach(QNetworkConfiguration cfg, manager.allConfigurations()) {
if (cfg.name() == ifName) {
pNetworkAccessManager->setConfiguration(cfg);
break;
}
}
现在,我的槽被调用了。
我希望有一种更简单的方法来获得所需的配置。现在,我必须弄清楚如何让配置以 IP 地址而不是接口名称开头。