Есть список серверов. В таблице. Прохожу циклом по таблице и последовательно коннекчусь к каждому серверу. После коннекта проверяю, есть интернет или нет (curl). Если курл вернул ip адрес, то в соответствующую строку таблицы добавляю этот ip. Код работает, выхлоп qDebug в консольку идет, и в таблицу тоже добавляется, но таблица перерисовывается только когда цикл закончится. В списке порядка 100 локаций, и пройтись по всем занимает около 10 минут. Всё это время окно программы не реагирует ни на что. Как его разморозить, чтобы изменения в таблице отображались в процессе прохождения цикла, а не после его окончания?
Пробовал в отдельном QThread - не помогает,
QStringList vArguments;
    vArguments << "connect.sh";
    QStringList curlArguments;
    curlArguments << "--connect-timeout" << "5" << "ifconfig.me" ;
    QString stdout, ipAddr;
    QBrush brush;
    brush = QBrush(Qt::green, Qt::SolidPattern);
    QRegularExpression ipRegex(R"((\d{1,3}\.){3}\d{1,3})");
    QTableWidgetItem* item;
    bCancelSearch = false;
    for ( int i=0; i<table->rowCount()-1; i++ ){
        //поочередно коннект к серверам через скрипт connect.sh
        QTableWidgetItem *item = table->item(i,0);
        qDebug() << item->text();
        vArguments << item->text();
        vProcess = new QProcess();
        vProcess->setProcessChannelMode(QProcess::MergedChannels);
        vProcess->start( "sudo", vArguments );
        vProcess->waitForFinished();
        vArguments.removeLast();
        //после коннекта проверка наличия инета : curl ifconfig.me
        curlProcess = new QProcess();
        curlProcess->setProcessChannelMode(QProcess::MergedChannels);
        curlProcess->start( "curl", curlArguments );
        curlProcess->waitForFinished();
        stdout = curlProcess->readAllStandardOutput();
        //если curl вернул ip - добаляю его в таблицу
        item = table->item(i,2);
        if ( ipRegex.match(stdout).hasMatch() ){
            int lastPos = stdout.lastIndexOf(QChar('\n'));
            ipAddr = stdout.mid(lastPos+1);
            qDebug() << item->text() << "responded" << ipAddr;
            txtOutput->append(item->text() + " has responded from " + ipAddr);
            item = new QTableWidgetItem();
            item->setText(ipAddr);
            table->setItem(i,4,item);
            for (int j=0; j<5; j++){
                item = table->item(i,j);
                item->setBackground(brush);
            }
            }else{
                qDebug() << "no match" << item->text();
                txtOutput->append(item->text() + " no response");
            }
            if ( bCancelSearch )return;
    }Как разморозить гуй?











