crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QNetworkAccessManager и сигнал finished(QNetworkReply*)
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 23.7.2011, 10:16
  vankleef, скорее всего полный ребилд всё исправил бы тогда
vankleef Дата 23.7.2011, 0:01
  Дико извиняюсь, на работе почему то не работало. Пришел домой-все хорошо)
Алексей1153 Дата 22.7.2011, 19:05
 
Цитата
Не вызывается слот replyFinish.


и ещё обрати внимание - пишутся ли в консоли какие-нибудь сообщения при назначении связи или при срабатывании сигнала
RazrFalcon Дата 22.7.2011, 17:11
  У меня так же и пашет.
Про QT + = network не забыли?
vankleef Дата 22.7.2011, 14:23
  Доброго времени суток, форумчане)

Необходимо написать приложение, работающее с сетью. Для этих целей решил использовать в приложении класс QNetworkAccessManager.
Для тестирования написал небольшую программку:

main.cpp
Раскрывающийся текст
#include <QtGui/QApplication>
#include "mainForm.h"

int main(int argc, char *argv[]) {
    // initialize resources, if needed
    // Q_INIT_RESOURCE(resfile);

    QApplication app(argc, argv);

    // create and show your widgets here

    mainForm *f=new mainForm;
    f->show();

    return app.exec();
}

mainForm.h
Раскрывающийся текст
#ifndef _MAINFORM_H
#define    _MAINFORM_H

#include "ui_mainForm.h"
#include <QDebug>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QUrl>

class mainForm : public QDialog {
    Q_OBJECT
public:
    mainForm();
    virtual ~mainForm();
private:
    Ui::mainForm widget;

private slots:
    void replyFinish(QNetworkReply*);
};

#endif    /* _MAINFORM_H */

mainForm.cpp
Раскрывающийся текст
#include "mainForm.h"

mainForm::mainForm() {
    widget.setupUi(this);
    widget.textEdit->setReadOnly(true);

    qDebug()<<"GO!";

    QNetworkAccessManager *pManager = new QNetworkAccessManager(this);
    connect(pManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinish(QNetworkReply*)));
    pManager->get(QNetworkRequest(QUrl("http://ya.ru")));
}

mainForm::~mainForm() {
}

void mainForm::replyFinish(QNetworkReply* rep){
    qDebug()<<"DONE!";
}

Не вызывается слот replyFinish.. что я делаю не так? Оо кучу времени потратил на гугл, ничего внятного не нашел.
Qt 4.7.3 пример скатал из ассистанта, также пробовал следующай пример
Раскрывающийся текст
QNetworkRequest request;
request.setUrl(QUrl("http://qt.nokia.com"));
request.setRawHeader("User-Agent", "MyOwnBrowser 1.0");

QNetworkReply *reply = manager->get(request);
connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
         this, SLOT(slotError(QNetworkReply::NetworkError)));
connect(reply, SIGNAL(sslErrors(QList<QSslError>)),
         this, SLOT(slotSslErrors(QList<QSslError>)));

Тоже нуль результатов
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 22.9.2019, 12:52