АК
April 3, 2019, 8:40 a.m.

Открытие и закрытие модального окна.

Всем добра. Подскажите пожалуйста следующий момент. Пишу программу на qml, при нажатии на кнопку происходит открытие popup окна.

MouseArea{
                    anchors.fill: parent
                    onClicked: {
                        popup.open();
                        netClient.getAll();
                    }
                }

после этого идёт выполнение функции,

void NetGet::getAll(){
    QEventLoop * loop = new  QEventLoop(this);
    QUrl url("...");
    QNetworkRequest parm(url);
    QString concatenated = "...";
    QByteArray data = concatenated.toLocal8Bit().toBase64();
    QString headerData = "Basic " + data;
    parm.setRawHeader("Authorization", headerData.toLocal8Bit());
    this->get(parm);
   loop->exec();
}

которая должна заблокировать работу приложения до получения ответа с сервера. В принципе loop справляется. Но после завершения обработки, как теперь закрыть окно popup? Либо, если есть другое решение, поделитесь опытом.

Virtual hosting with 10 percent discount
Virtual hosting with 10 percent discount
EVILEG offers reliable hosting with a 10% discount for virtual hosting and 5% for VPS
2
R
  • April 3, 2019, 9:30 a.m.
  • The answer was marked as a solution.

Добрий день, перше що приходить в голову це пропертя Q_PROPERTY(bool visibleForm READ visibleForm WRITE setVisibleForm NOTIFY visibleFormChanged)

або

в C++ класі сигнал сloseChanged викликаєте після loop->exec();

        Connections {
            target: netClient
            onCloseChanged: popup.closed()

        }
2
АК

Отлично работает вариант с передачей сигнала. Немного знаний в голову. Спасибо огромное. :)

1

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Last comments
June 24, 2019, 10:23 a.m.
Евгений Легоцкой

Хорошо, ну будут проблемы помимо того, что касается статей, то не стесняйтесь задавать вопросы на форуме.
МБ
June 24, 2019, 10:21 a.m.
Михаил Булатов

Извиняюсь, все работает(из-за невнимательности).
June 24, 2019, 9:52 a.m.
Евгений Легоцкой

Придётся делать ещё сигнал в дочернем qml и пробрасывать через коннекты и обработчики. А вообще нужно смотреть конкретный код и что вы пытаетесь сделать. Так что лучше будет, если вы зад...
June 21, 2019, 8:31 a.m.
Ruslan Polupan

Вот моя строка по которой все отлично сработало %cqtdeployer% -bin c:/CentralMposKeys/CentalMposKeys.exe -qmake c:/Qt/5.12.2/mingw73_64/bin/qmake.exe
June 21, 2019, 8:24 a.m.
Андрей Янкович

Возможно кому то пригодится сqtdeployer для windows работает точно так же как и для Linux разница лишь в команде запуска Linux: cqtdeployer Windows: %cqtdeployer...
Now discuss on the forum
June 24, 2019, 2:36 p.m.
Михаиллл

Нашел проект подключения к вебсокету.Но по моему адресу не могу подключиться.Нужно ли для этого использовать библиотеки?Вы не знаете адрес вебсокета, на котором можно проверить с...
June 24, 2019, 2:07 p.m.
Евгений Легоцкой

Я пока даже не знаю, а какой код самого подключения? использовали ожидание на подключение? Так делали? socket->connectToServer("market");if (socket->waitForConnected(1000)) ...
June 24, 2019, 1:19 p.m.
IscanderChe

// widget.cpp#include "widget.h"#include <QTableView>#include <QVBoxLayout>#include "checkboxdelegate.h"#include "comboboxdelegate.h"#include "mytableview.h"#include <QSqlD...
June 24, 2019, 11:16 a.m.
BlinCT

Хорошо, с этим понятно. Вот есть такой набор каких то кнопок. Цифры отображают в каком порядке должен менятся фокус.1. Как правильнее сделать отображение активного обьекта...
e
June 24, 2019, 10:58 a.m.
evgenm27

Спасибо за ответ, буду пробовать
Looking for a Job?
10,000.00 руб. - 15,000.00 руб.
Нужен помощник для создания API.
Moscow, Moscow, Russia
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

For registered users on the site there is a minimum amount of advertising

EVILEG
About
Services
Join us
© EVILEG 2015-2019
Recommend hosting TIMEWEB