Qt und consolen anwendungen

Alles rund um die Programmierung mit Qt
Antworten
Treehouse
Beiträge: 100
Registriert: 18. Juni 2007 10:21

Qt und consolen anwendungen

Beitrag von Treehouse »

Hallo zusammen,

ich habe mal folgende frage. Ist es möglich solche Sachen wie QHttp, QXml usw. auch in Consolen anwendungen zu verwenden??

Ich würde nämlich gernen einen kleinen rss reader für eine Seite schreiben und da Qt so nette funktionen hat dachte ich man könnte diese vielleicht nutzen.

Oder ist dies immer nur möglich im zusammenhang mit einer Gui ?

Gruß

Treehouse
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Warum sollte es nicht gehen?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Treehouse
Beiträge: 100
Registriert: 18. Juni 2007 10:21

Beitrag von Treehouse »

Ja weil ich gerade versuche eine html seite aus zu lesen und so wie ich das verstanden habe muss ich da doch dann mit Signal Slot arbeiten oder?? Damit man weiß wann das einlesen beendet ist.

Ich versuche gerade das kleine programm aus dem Tutorial auf die Konsole zu übertragen,

http://doc.trolltech.com/4.3/xml-rsslis ... g-cpp.html

aber so richtig will es nicht klappen...... wenn ich hier http.readall() mache kommen hier keine daten an.
Treehouse
Beiträge: 100
Registriert: 18. Juni 2007 10:21

Beitrag von Treehouse »

Hier mal mein kleiner Code ::

Code: Alles auswählen

#include <QHttp>
#include <QString>
#include <iostream>
#include <QUrl>
#include <QDebug>
#include <QByteArray>

using namespace std;

int main(int argc, char **argv){

  QHttp http;
  QByteArray arr;
  QUrl url(argv[1]);

  http.setHost(url.host());
  http.get(url.path());
  arr = http.readAll();
  qDebug() << arr;
}
und ich dachte halt das man so die Seite schon mal auslesen könnte. Aber da habe ich wohl was flasch verstanden.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du läßt die Event-Routine nicht laufen, somit kann das auch nicht funktionieren...
Treehouse
Beiträge: 100
Registriert: 18. Juni 2007 10:21

Beitrag von Treehouse »

ach du meinst das um den normal code auch noch das..

QApplication app(argc, argv);
.
.
.
.
CODE
.
.
.
.
.
.
return app.exec();
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Lies die Doku!

Stichwort: QCoreApplication
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Treehouse
Beiträge: 100
Registriert: 18. Juni 2007 10:21

Beitrag von Treehouse »

So sollte es doch gehen oder................ nur leider tuts das nicht

woran kann das denn liegen.......... ?

Code: Alles auswählen

int main(int argc, char **argv){

  QCoreApplication a(argc, argv); 
  QHttp http;
  QByteArray arr;
  QUrl url(argv[1]);

  http.setHost(url.host());
  http.get(url.path());
  qDebug() <<  http.readAll();


  return a.exec();
}
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

woran kann das denn liegen.......... ?
Daß du die Doku nicht liest oder nicht verstehen willst.

Mach dir mal Gedanken, wann deine Event-Routine läuft und somit deine Events abgearbeitet werden könne.
Treehouse
Beiträge: 100
Registriert: 18. Juni 2007 10:21

Beitrag von Treehouse »

Sagen wirs mal so würde ich sie verstehen meinst du dann würde ich fragen ?

aber gut kann nicht jeder mit der Qt doku auf die Welt gekommen sein.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Euer Problem ist dass ihr einfach anfangt ohne euch Gedanken zu machen bzw. ohne zu wissen was ihr überhaupt macht.
Hättest Du dich etwas mit Qt beschäftigt und die Tutorials durchearbeitet hättest Du gesehen, dass dies nur mit Signals/Slots geht. Steht ja auch gut hier
int QHttp::get ( const QString & path, QIODevice * to = 0 )

Sends a get request for path to the server set by setHost() or as specified in the constructor.

path must be an absolute path like /index.html or an absolute URI like http://www.trolltech.com/index.html.

If the IO device to is 0 the readyRead() signal is emitted every time new content data is available to read.

If the IO device to is not 0, the content data of the response is written directly to the device. Make sure that the to pointer is valid for the duration of the operation (it is safe to delete it when the requestFinished() signal is emitted).

The function does not block and returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().

When the request is started the requestStarted() signal is emitted. When it is finished the requestFinished() signal is emitted.
Wir haben uns das auch alles erarbeitet und sind nicht mit der Doku auf die Welt gekommen. Aber wir haben auch was dafür gegeben und mal nachgedacht und nachgelesen!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten