crossplatform.ru

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

eldar85
  опции профиля:
сообщение 31.3.2010, 23:24
Сообщение #1


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


хотелось бы написать программу чтобы она загружала мою почтовую страницу, входила в нее сама и показывала мне входящие письма) в общем чтобы при запуске проги я сразу видел мои входящие письма) кто нить знает как это делать в QWebKit?

к примеру
view = new QWebView(this);
    view->load(QUrl("http://yandex.ru/"));


а вот как быть дальше?????

Сообщение отредактировал eldar85 - 1.4.2010, 14:40
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
2 страниц V   1 2 >  
Начать новую тему
Ответов (1 - 13)
kibsoft
  опции профиля:
сообщение 1.4.2010, 0:09
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

Спасибо сказали: 14 раз(а)




Репутация:   2  


Цитата(eldar85 @ 1.4.2010, 0:24) Link
хотелось бы написать программу чтобы она загружала мою почтовую страницу, входила в нее сама и показывала мне входящие письма) в общем чтобы при запуске проги я сразу видел мои входящие письма) кто нить знает как это делать в QWebKit?

к примеру
view = new QWebView(this);
    view->load(QUrl("http://yandex.ru/"));


а вот как быть дальше?????


Почитай про QNetworkAccessManager. Там есть функция post, которая возвращает QNetworkReply, соответственно у которого есть функция url() :)
Удачи!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 1.4.2010, 0:54
Сообщение #3


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


спасибо) кое что проясняется)))

Сообщение отредактировал eldar85 - 1.4.2010, 1:05
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 1.4.2010, 14:38
Сообщение #4


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


 QNetworkAccessManager manager;
//QNetworkReply *reply;  определяется в хедере
    QUrl apiUrl;
    QByteArray requestString;

    apiUrl = "http://passport.yandex.ru/passport?mode=auth&retpath=http://mail.yandex.ru";
    requestString = "retpath=http%3A%2F%2Fmail.yandex.ru&idkey=0DM1270122392Bd48soVS_&timestamp=1270121234857&login=fox.dog2010&passwd=arny7777&In=%D0%92%D0%BE%D0%B9%D1%82%D0%B8";
    QNetworkRequest request(apiUrl);
    reply = manager.post(request, requestString);
    connect(reply, SIGNAL(finished()), this, SLOT(getReplyFinished()));
    connect(reply, SIGNAL(readyRead()), this, SLOT(readyReadReply()));
    view->setHtml(answer);
    qDebug() << answer;


слоты выглядят так
void mainWindow::getReplyFinished()
{
    reply->deleteLater();
}

void mainWindow::readyReadReply()
{
    answer = QString::fromUtf8(reply->readAll());
}


в итоге в дебаге все пусто... ничего не получает...

Сообщение отредактировал eldar85 - 1.4.2010, 15:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 1.4.2010, 14:39
Сообщение #5


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


eldar85,
что ты хотел последним постом сказать?
этот пост это вопрос?
ответ?
результат?
что это?
-----------------------
теперь понятно.
Причина редактирования: изменилось предыдущее сообщение
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 1.4.2010, 14:43
Сообщение #6


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


ну я просто хотел зайти на свою почту) или что вы имели ввиду?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 1.4.2010, 14:43
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


eldar85,
не удивительно. у тебя загрузка в браузер ответа, просиходит перед его получением. т.к. нужно время чтоб вызвался сигнал finished() или readyRead(), минимум надо выйти из блока, в котором посылался запрос.
+ вероятно сигнал finished() приходит раньше readyRead() ты распределяешь в обработчике finished() ответ на удадение, все сигнал-слотные связи объекта рушатся при удалении в итоге readyRead() не должен приходить вообще.
Причина редактирования: очепятки
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 1.4.2010, 15:43
Сообщение #8


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


чет не соображу никак)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 1.4.2010, 16:31
Сообщение #9


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


ну слот readyReadReply()
если и вызовется то после
view->setHtml(answer);
qDebug() << answer;
а не перед.

если finished приходит раньше чем readyRead то объект reply удалится и удалятся все сигнально-слотные соединения и сигнала redyRead не будет вообще.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 2.4.2010, 21:17
Сообщение #10


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


хотел посмотреть что выдают эти сигналы со слотами и в итоге они оба в дебаге выдали false
 qDebug() << connect(reply, SIGNAL(finished()), this, SLOT(getReplyFinished()));
    qDebug() << connect(reply, SIGNAL(readyRead()), this, SLOT(readyReadReply()));
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.4.2010, 1:34
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(eldar85 @ 3.4.2010, 1:17) Link
хотел посмотреть что выдают эти сигналы со слотами и в итоге они оба в дебаге выдали false
Qt печатает предупреждение в консоль (даже без qDebug), если соединение не удалось, в предупреждении также указана причина. Читай
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 3.4.2010, 13:44
Сообщение #12


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


начал выкидывать в консоль вообще какие то ошибки, я даже въехать не могу о чем они...
QSslSocket: cannot call unresolved function SSLv3_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
QSslSocket: cannot call unresolved function ERR_error_string
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.4.2010, 15:26
Сообщение #13


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(eldar85 @ 3.4.2010, 17:44) Link
начал выкидывать в консоль вообще какие то ошибки, я даже въехать не могу о чем они...
Link
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 3.4.2010, 19:40
Сообщение #14


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


решил проблему так:

Необходимо скачать Win32 версию OpenSSL

с этого сайта Link

Прямая ссылка на текущую версию: Link

После чего выполняем установку.

В директории программы находятся три dll-файла: ssleay32.dll, libssl32.dll, libeay32.dll. Их необходимо поместить в sytem32, либо добавить путь к ним в переменную окружения PATH, Qt без них, Вы, конечно, соберете, но проект работать не будет (будет ругаться на отсутствие dll в системе).
[править]
Для компилятора MSVS

Запускаем консоль MSVS.

К команде configure добавить ключи -openssl-linked -I /path/2/openssl/include -L /path/2/openssl/lib
[править]
Для компилятора MinGW

Из папки c OpenSSL \lib нужно скопировать файлы: libeay32.lib ssleay32.lib

в папку Qt qt\lib

Из папки с OpenSSL \lib\MinGW скопировать все файлы в папку Qt \mingw\lib

Из папки c OPenSSL \include скопировать папку openssl со всем содержимым в папку Qt \qt\include

Запустить "Qt Command Prompt" (C:\WINDOWS\system32\cmd.exe /K C:\Qt\2009.02\bin\qtenv.bat) и вписать в команду configure ключ -openssl-linked
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 7.8.2025, 0:20