Qt, как отобразить, пожалуйста, дождитесь диалога, пока сокет ожидает ответа? - PullRequest
0 голосов
/ 23 июня 2019

У меня есть функция, которая делает http-запрос, серверу может потребоваться некоторое время для ответа. Во время ожидания я хотел бы отобразить диалоговое окно ожидания для пользователя.

Я попытался создать диалоговое окно «Пожалуйста, подождите» и затем отправил http-запрос на сервер. Диалоговое окно «Пожалуйста, подождите» возвращается мгновенно, никаких ошибок и ничего не отображается, затем выполняется http-запрос, но диалоговое окно «Пожалуйста, не ждите»

Если я не выполню http-запрос и разрешу продолжить выполнение, появится диалоговое окно.

Я думаю, что, возможно, решением было бы создать диалоговое окно "Пожалуйста, подождите" в новой теме?

Мой класс clsAlert является производным от clsDialog в конструкторе:

    clsAlert::clsAlert(QString strText, QWidget* pParent, bool blnAutoCleanup) : QDialog(pParent), ui(new Ui::clsAlert) {
        ui->setupAlert(this);
        ui->lblText->setText(strText);
        ... set-up geometry ...
        show();
    }

Пример использования:

    clsAlert* pPW = new clsAlert(clsAlert::mscszPleaseWait,mpParent);
    int intServer = intCreateSocket(szDestURL, pOutbio);
    ... a lot more source ...
    pPW->cleanup();

1 Ответ

1 голос
/ 28 июня 2019

В конце я исправил это в моем случае, добавив вызов:

    QCoreApplication::processEvents();

Сразу после моего звонка:

    show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...