3

如何在 qt 中监控互联网连接状态?我的意思是我希望能够将图标更改为活动/非活动取决于是否存在互联网连接。

4

2 回答 2

1

如果您使用的是 QML,则 Qt Mobility 包中有NetworkInfo QML 元素。此外,其中包含一个示例,如何检查是否存在 WLAN 连接。

于 2012-12-08T18:36:43.610 回答
0

我使用此代码检查互联网状态。

bool ConnectivityManager::isOnline()
{
    bool retVal = false;
    QNetworkAccessManager nam;
    QNetworkRequest req(QUrl("http://www.google.com"));
    QNetworkReply* reply = nam.get(req);
    QEventLoop loop;
    QTimer timeoutTimer;

    connect(&timeoutTimer, SIGNAL(timeout()), &loop, SLOT(quit()));
    connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));

    timeoutTimer.setSingleShot(true);
    timeoutTimer.start(3000);

    loop.exec();

    if (reply->bytesAvailable())
    {
        retVal = true;
    }

    return retVal;
}
于 2019-08-22T07:35:51.693 回答