亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Qt函數名使用方法有哪些

發布時間:2021-12-15 10:26:27 來源:億速云 閱讀:127 作者:iii 欄目:互聯網科技

本篇內容介紹了“Qt函數名使用方法有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

函數名

    //判斷IP地址及端口是否在線
    static bool ipLive(const QString &ip, int port, int timeout = 1000);
    //獲取網頁所有源代碼
    static QString getHtml(const QString &url);
    //獲取本機公網IP地址
    static QString getNetIP(const QString &webCode);
    //獲取本機IP
    static QString getLocalIP();
    //Url地址轉為IP地址
    static QString urlToIP(const QString &url);

    //字符串補全
    static QString getValue(quint8 value);
    //判斷是否通外網
    static bool isWebOk();

函數體

bool QUIHelper::ipLive(const QString &ip, int port, int timeout)
{
    //局部的事件循環,不卡主界面
    QEventLoop eventLoop;

    //設置超時
    QTimer timer;
    connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit()));
    timer.setSingleShot(true);
    timer.start(timeout);

    QTcpSocket tcpSocket;
    connect(&tcpSocket, SIGNAL(connected()), &eventLoop, SLOT(quit()));
    tcpSocket.connectToHost(ip, port);
    eventLoop.exec();
    bool ok = (tcpSocket.state() == QAbstractSocket::ConnectedState);
    return ok;
}

QString QUIHelper::getHtml(const QString &url)
{
    QNetworkAccessManager *manager = new QNetworkAccessManager();
    QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url)));
    QByteArray responseData;
    QEventLoop eventLoop;
    QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit()));
    eventLoop.exec();
    responseData = reply->readAll();
    return QString(responseData);
}

QString QUIHelper::getNetIP(const QString &webCode)
{
    QString web = webCode;
    web = web.replace(' ', "");
    web = web.replace("\r", "");
    web = web.replace("\n", "");
    QStringList list = web.split("<br/>");
    QString tar = list.at(3);
    QStringList ip = tar.split("=");
    return ip.at(1);
}

QString QUIHelper::getLocalIP()
{
    QStringList ips;
    QList<QHostAddress> addrs = QNetworkInterface::allAddresses();
    foreach (QHostAddress addr, addrs) {
        QString ip = addr.toString();
        if (QUIHelper::isIP(ip)) {
            ips << ip;
        }
    }

    //優先取192開頭的IP,如果獲取不到IP則取127.0.0.1
    QString ip = "127.0.0.1";
    foreach (QString str, ips) {
        if (str.startsWith("192.168.1") || str.startsWith("192")) {
            ip = str;
            break;
        }
    }

    return ip;
}

QString QUIHelper::urlToIP(const QString &url)
{
    QHostInfo host = QHostInfo::fromName(url);
    return host.addresses().at(0).toString();
}

QString QUIHelper::getValue(quint8 value)
{
    QString result = QString::number(value);
    if (result.length() <= 1) {
        result = QString("0%1").arg(result);
    }
    return result;
}

bool QUIHelper::isWebOk()
{
    //能接通百度IP說明可以通外網
    return ipLive("115.239.211.112", 80);
}

“Qt函數名使用方法有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

qt
AI

儋州市| 阿合奇县| 丹东市| 广汉市| 治县。| 阳原县| 旺苍县| 扶余县| 乐亭县| 宁武县| 吉安县| 富源县| 房山区| 满洲里市| 巢湖市| 孝昌县| 三门峡市| 曲沃县| 乌兰浩特市| 确山县| 岑巩县| 梅州市| 天柱县| 临沂市| 通山县| 德安县| 木兰县| 民和| 五原县| 龙海市| 孝感市| 柘城县| 汾西县| 中方县| 内乡县| 西丰县| 霸州市| 哈巴河县| 类乌齐县| 海南省| 北宁市|