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