1
私の設定を発射ません。QtのnetworkAccessibleChanged信号は
これは私のコードです:
mNetManager = new QNetworkAccessManager(this);
connect(mNetManager, &QNetworkAccessManager::networkAccessibleChanged,
this, &NetworkTester::updateFlag);
信号QNetworkAccessManagerのでupdateFlagが呼び出されない方法:: networkAccessibleChangedは解雇されることはありません。
私はタイマー設定することでこの問題を回避ました:
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(checkNetwork()));
timer->start(1000);
void NetworkTester::checkNetwork()
{
switch (mNetManager->networkAccessible()) {
case QNetworkAccessManager::Accessible:
qDebug() << "You are online.";
break;
case QNetworkAccessManager::NotAccessible:
qDebug() << "You are offline.";
break;
case QNetworkAccessManager::UnknownAccessibility:
default:
qDebug() << "You know nothing, Jon Snow.";
break;
}
}
をしかし、私は/アンプラグネットワークケーブルを接続するとき、それは常にQNetworkAccessManager :: networkAccessibleを返すように私は、任意の変化を検出するように見えることはできません。
私には何が欠けているのでしょうか?おかげさまで
あなたのご意見ありがとうございます。 QNetworkConfigurationManagerを使ってもテストしましたが、状態は常にオンラインです。 QList activeConfigs = mConfManager-> allConfigurations(QNetworkConfiguration :: Active); qDebug()<< "isonline:" << mConfManager-> isOnline(); –
PerelMan
ネットワークインターフェイスは1つだけですか?たぶん、2番目のイーサネットケーブルが接続されているか、WiFiネットワークに接続されていますか? 'isOnline'はあなたのネットワーク接続がどれもアクティブでない(接続されていない/接続されていない)場合にのみfalseを返します。 –
はい:私は3つのネットワークインターフェイスを持っています。そのうちの1つは、スイッチを切った仮想マシンインターフェイスです。すべてのケーブルを抜いても、私はまだオンラインステータスを持っています – PerelMan