Russian Qt Forum
Ноябрь 23, 2024, 08:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QHttp::setHost почему появляется сигнал?  (Прочитано 4294 раз)
catprog
Гость
« : Сентябрь 29, 2009, 11:35 »

При вызове
->setHost(some_host,80);
сразу возникает сигнал requestFinished() так и должно быть? Он мне мешает, так как ничего на самом деле не скачано.
Вот так связал
Код:
QObject::connect( own_chanel,
                      SIGNAL( requestFinished(int,bool) ),
                      this,
                      SLOT( dataDone(int, bool) ) );
и вот так объявил
Код:
void Chanel_my::dataDone(int, bool) // моя функция
{
//.....
}

Может дело в этих int, bool? Зачем они вообще надо?
QHttp::close() помоему тоже подозрительно себя ведет.
Записан
BlackTass
Гость
« Ответ #1 : Сентябрь 29, 2009, 12:01 »

Вы просто проверяйте этот самый непонятный вам инт на соответствие идшнику возвращенному от get(), post(), request() и будет все хорошо. То что возникает такой сигнал это правильно, так как первый реквест это запрос хоста, а уже только потом ваш запрос.
Еще есть смысл перейти на QNetworkAccessManager, так как QHttp объявлен как obsolete и будет выкинут из Qt.
Записан
catprog
Гость
« Ответ #2 : Сентябрь 29, 2009, 22:18 »

Вы просто проверяйте этот самый непонятный вам инт на соответствие идшнику возвращенному от get(), post(), request() и будет все хорошо.
А как же я это проверю на соответствие если метод request() еще не вызван, а сигнал requestFinished(int,bool) уже появился и надо его обработать Непонимающий
Записан
BlackTass
Гость
« Ответ #3 : Сентябрь 30, 2009, 07:48 »

ну инициализируйте этот член минус единицей например или еще чемнибудь что точно не придет в этом сигнале и все
Записан
catprog
Гость
« Ответ #4 : Сентябрь 30, 2009, 10:37 »

ну инициализируйте этот член минус единицей например или еще чемнибудь что точно не придет в этом сигнале и все

Код:
own_chanel->setHost(some_host,80);
.... = own_chanel->request(*this->own_header);
Ок так и сделаю, в дебаге заметил что метод request() успевает вызваться до первого сигнала requestFinished(int,bool) нельзя ведь надеятся что так будет всегда?
Записан
BlackTass
Гость
« Ответ #5 : Сентябрь 30, 2009, 11:43 »

Если у вас метод, в котором делается сетХост и реквест находится в том же потоке, что и евентлуп в котором отрабатывает слот и нет processEvents() между setHost() и request(), то сначала выполнится этот метод, а только потом уже слоты. Но надеяться на это не надо все равно, мало ли придется разнести на разные потоки.
Записан
catprog
Гость
« Ответ #6 : Сентябрь 30, 2009, 15:30 »

благодарю за разъеснения
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 21.