![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
bo0blik |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 27 Регистрация: 13.9.2009 Пользователь №: 1089 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Данная функция используется в цикле, естественно результат не верный. Как решить эту проблему? Желательно пояснять кодом. Возможна ли работа QNetwork в блокирующем режиме? |
|
|
SABROG |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Этот класс не обладает такой возможностью. На крайняк можно создать экземпляр QEventLoop в методе и выходить из цикла событий, когда придет сигнал о завершении запроса.
|
|
|
bo0blik |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 27 Регистрация: 13.9.2009 Пользователь №: 1089 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Можно какой-нибудь банальный пример.
Насколько я понял этот луп просто напросто будет выключатся при помощи сигнала о завершении запроса и слота выхода из лупа. А как его создать в методе? (просто в документации не одного намека на пример с кодом) И мне все еще интересны все более-мение правильные решения этой проблемы. |
|
|
SABROG |
![]()
Сообщение
#4
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
правильные решения этой проблемы Правильное решение проблемы - не использовать циклы while/for, а использовать сигналы и слоты. Насколько я понял этот луп просто напросто будет выключатся при помощи сигнала о завершении запроса и слота выхода из лупа. Угу exec()/quit() |
|
|
bo0blik |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 27 Регистрация: 13.9.2009 Пользователь №: 1089 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вы не могли бы написать малютку пример использвоания лупа, я бы прям был дико неистово благодарен.
Ибо с простым exec у меня ничего не вышло. |
|
|
SABROG |
![]()
Сообщение
#6
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
bo0blik |
![]()
Сообщение
#7
|
Студент ![]() Группа: Участник Сообщений: 27 Регистрация: 13.9.2009 Пользователь №: 1089 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Оказывается я это уже и делал, но думал это не рабочий вариант ибо возвращался пустой ответ - запрос просто не тот делал.
Но мне все же интересно, что делает функция reply->deleteLater() ? |
|
|
SABROG |
![]()
Сообщение
#8
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Оказывается я это уже и делал, но думал это не рабочий вариант ибо возвращался пустой ответ - запрос просто не тот делал. Но мне все же интересно, что делает функция reply->deleteLater() ? Освобождает память выделенную QNAM под QNetworkReply при возвращении в главный цикл событий. Потокобезопасное удаление на тот случай, если указатель может быть тобой использован в другом потоке. |
|
|
bo0blik |
![]()
Сообщение
#9
|
Студент ![]() Группа: Участник Сообщений: 27 Регистрация: 13.9.2009 Пользователь №: 1089 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вот так это выглядит на данный момент, но все же возвращает только последний результат, если по одному запросу делать - то все работает. |
|
|
SABROG |
![]()
Сообщение
#10
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Так ведь метод Login ниразу не должен выполнится, у тебя же отрицание true стоит и смайлик ![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 20.6.2025, 11:59 |