Russian Qt Forum

Qt => Работа с сетью => Тема начата: hanabad от Сентябрь 22, 2010, 16:46



Название: Cоеденить сетевую часть с переписанным QPusButton.
Отправлено: hanabad от Сентябрь 22, 2010, 16:46
Всем привет!
Задумал я сделать довнлоадер ключиков для KIS, но вот не задача не знаю как соеденить сетевую часть с переписанным QPusButton.
Отдельно сетевая часть работает, тоесть конект есть, авторизация тоже.
Как только запихиваю сеть в свой слот перестает раб., при это ели ставить точки останова видно, что слот выполняеться, а сетевой активности нет.
Проект на стадии разраб. поэтому привожу то что есть на данный момент.
Помогите пожалуйста разобраться.
Код:
#include <QtGui>
#include "MyQPushbutton.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QIcon ico;
ico.addFile("icon.png", QSize(32, 32));
MyQPushbutton btn;
btn.setWindowIcon(ico);
btn.setText("START");
btn.setWindowFlags(Qt::Window|Qt::WindowTitleHint|
Qt::WindowSystemMenuHint);
btn.setWindowTitle("KAVkeysDownloader");
    QPalette pal = btn.palette();
pal.setColor(QPalette::ButtonText, Qt::red);
btn.setPalette(pal);
btn.setFont(QFont("",36,72,false));
btn.setFixedSize(250,50);
btn.show();
    btn.move((QApplication::desktop()->width()-btn.width())/2,
(QApplication::desktop()->height()-btn.height())/2);
QObject::connect(&btn,SIGNAL(clicked()),&btn,SLOT(connectToVip()));
return app.exec();
}
Код:
#ifndef _MyQPushbutton_h_
#define _MyQPushbutton_h_

#include <QPushButton>

class MyQPushbutton : public QPushButton {
Q_OBJECT

public slots:
void connectToVip();
};
#endif
Код:
#include <QApplication>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include "MyQPushbutton.h"

void MyQPushbutton::connectToVip()
{
        QNetworkAccessManager manager;
QNetworkReply *reply;
QUrl apiUrl1 = "http://vipzone.ws/key_antivir/";
QByteArray requestString;
requestString = "login_name=ИМЯ&login_password=ПАРОЛЬ&login=submit";
QNetworkRequest request;
request.setUrl(apiUrl1);
request.setRawHeader("User-Agent",
"Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.6.30 Version/10.62");
reply = manager.post(request, requestString);
}
То что reply надо удалять я знаю.
Кстати на счет ключиков сайт супер!


Название: Re: Cоеденить сетевую часть с переписанным QPusButton.
Отправлено: Авварон от Сентябрь 22, 2010, 17:53
почти не работал с сетью, но рискну предположить что у вас разрушается нетворк манагер, созданный на стеке


Название: Re: Cоеденить сетевую часть с переписанным QPusButton.
Отправлено: navrocky от Сентябрь 23, 2010, 10:39
почти не работал с сетью, но рискну предположить что у вас разрушается нетворк манагер, созданный на стеке

+1
QNetworkAccessManager работает асинхронно, и для возвращаемого reply надо дождаться собственно ответа.

ЗЫЖ Вообще экстравагантный подход реализовать всю программу в наследнике от кнопки %)