Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Qt, C++] No such slot MyClass::replyFinished(QNetworkReply*)

Ostatnio zmodyfikowano 2013-06-15 21:26
Autor Wiadomość
look997
Temat założony przez niniejszego użytkownika
[Qt, C++] No such slot MyClass::replyFinished(QNetworkReply*)
» 2013-06-07 13:17:46
Używam 32 bitową wersję QT Creatora z kompilatorem minGW C++ na Windowsie 7.

Używam takiego gotowca z neta:
C/C++
#include <QObject>

#include <QNetworkAccessManager>
#include <QNetworkRequest>
QNetworkAccessManager * manager = new QNetworkAccessManager( this );
connect( manager, SIGNAL( finished( QNetworkReply * ) ),
this, SLOT( replyFinished( QNetworkReply * ) ) );

manager->get( QNetworkRequest( QUrl( "http://api.bitcoincharts.com/v1/markets.json" ) ) );

Program działa, ale pojawia się taki błąd:
QObject::connect: No such slot OknaKlasa::replyFinished(QNetworkReply*) in ..\CvanCoin2\oknaklasa.cpp:60
QObject::connect:  (receiver name: 'OknaKlasa')

Nie wiem nawet gdzie się będzie zapisywać pobrana treść, jeśli uda mi się to naprawić.
Mam nadzieję, że z https nie będzie dodatkowych problemów.
P-85101
sajmon
» 2013-06-07 15:17:03
Musisz utworzyć sobie slota replyFinished(QNetworkReply*)

potem w tym slocie wywołujesz np. readAll() dla QNetworkReply co powinno zwrócić całą treść dokumentu.

Przejrzyj dokumentację :P
P-85105
DejaVu
» 2013-06-07 18:19:33
http://stackoverflow.com/questions/6283484 /qt-how-to-download-and-save-image-via-http
http://doc.qt.digia.com/4.7/signalsandslots.html

No i jakbyś więcej chciał poczytać to:
Frazy, które należy wpisać w wyszukiwarkę google:

No i jeszcze coś po polsku:
http://blog.matthew.org.pl/2009/06/03 /kurs-qt-czesc-1-sygnaly-sloty-i-wlasne-widgety/
P-85119
look997
Temat założony przez niniejszego użytkownika
» 2013-06-10 20:59:22
Jak użyć tego readAll()?
P-85325
sajmon
» 2013-06-10 22:45:46
tak jak napisałem i tak jak jest w linku, który podał Pan Piotr
C/C++
void finished( QNetworkReply * reply )
{
    /*
    I teraz możesz wybrać czy od razu odczytać wszystko reply->readAll();
    Czy np sczytywać po linijcie readLine();
    */
}

@EDIT:
http://qt-project.org/doc/qt-5.0/qtnetwork/qnetworkreply.html
http://qt-project.org/doc/qt-5.0/qtnetwork /qnetworkreply-members.html
P-85349
DejaVu
» 2013-06-10 23:03:19
(...) Pan Piotr (...)
Źli ludzie! Postarzacie mnie! :P
P-85357
look997
Temat założony przez niniejszego użytkownika
» 2013-06-13 20:27:57
Jak to zrzucić na QJsonDocument a potem na QJsonObiect?

C/C++
QByteArray ByteArray = reply->readAll();
QJsonDocument * qjdoc = new QJsonDocument;
QJsonObject * ssss = new QJsonObject;

qjdoc->fromJson( ByteArray );
qDebug() << qjdoc->isObject();

Błędów nie ma, ale `qjdoc->isObject()` zwraca `false`.

Przypuszczam, że ByteArray jest w złym typie.
Plik json trzeba przypisać w całości? Nie mam pojęcia jak się to robi.


Da się zapisać w char *response = ByteArray.data();
ale nie umiem tego użyć bo trzeba się odnieść do char*&, a zresztą dlaczego nie konwertować tego bezpośrednio?
P-85526
sajmon
» 2013-06-13 22:12:55
z tego QJson nie korzystałem nigdy :C
ale metoda fromJson jako 2 argument ma informacje na temat ewentualnych błędów parsowania http://qt-project.org/doc/qt-5.0/qtcore/qjsonparseerror.html zobacz czy parsowanie przebiega bez błędów czy jednak coś tam nie gra :(
P-85539
« 1 » 2 3
  Strona 1 z 3 Następna strona