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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Cоеденить сетевую часть с переписанным QPusButton.  (Прочитано 2710 раз)
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 надо удалять я знаю.
Кстати на счет ключиков сайт супер!
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Сентябрь 22, 2010, 17:53 »

почти не работал с сетью, но рискну предположить что у вас разрушается нетворк манагер, созданный на стеке
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #2 : Сентябрь 23, 2010, 10:39 »

почти не работал с сетью, но рискну предположить что у вас разрушается нетворк манагер, созданный на стеке

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

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

Гугль в помощь
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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