Anwendung ohne QApplication

Alles rund um die Programmierung mit Qt
Antworten
kallitokaco
Beiträge: 11
Registriert: 5. Juli 2008 13:59

Anwendung ohne QApplication

Beitrag von kallitokaco »

Hi

ich arbeite mit QT und OGRE, daher muss ich die eventschleife/Renderschleife von OGRE laufen lassen und kann kein QApplication.exec() ausführen. Soweit kein Problem, alles klappt ganz normal.
Nunja fasst, ich nutze ein TcpSocket und sende die Daten an nen Server , der antwortet und die daten kommen bei mir an( mit Wireshark ), allerdings wird kein signal ausgelößt, das Daten lesbar sind.

ein connect welches mein eigenes Signal mit meinem Slot verbindet, klappt auch, wenn ich das Signal selbst auslöse ( emit).

Daher denke ich, dass das Problem da liegt, dass Qt nicht überprüft ob Daten angekommen sind, da ja keine QApplication ausgeführt wird.


Wie kann ich manuell überprüfen ob beim Tcpsocket daten angekommen sind, bzw wie kann ich QT alle Signale und Slots einmal überprüfen lassen.

Übrigens hab ich alle Libs eingebunden und so, daran liegt es nit und Fehler kommen keine. Im debugger führt der eben nur OGRE sachen aus ohne QT.

Vielen Dank für die Hilfe, ich suche schon seit n paar tagen nach ner Lösung ohne Erfolg...


Kallitokaco
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Daher denke ich, dass das Problem da liegt, dass Qt nicht überprüft ob Daten angekommen sind, da ja keine QApplication ausgeführt wird.
korrekt...
wie kann ich QT alle Signale und Slots einmal überprüfen lassen.
http://doc.trolltech.com/4.3/qcoreappli ... cessEvents

Ist zwar "static", aber ich habe keine Ahnung ob das auch ohne definierte QCoreApplication funktioniert...
Antis_81
Beiträge: 12
Registriert: 24. Mai 2007 13:19

Beitrag von Antis_81 »

Hallo,

hm, damit habe ich mich auch schon einige Male rumgeärgert.

Ist nur eine Idee, kein Erfolg garantiert, aber probier mal:

connect(socket, SIGNAL(readyRead()), SLOT(ev_read()), Qt::DirectConnection);

Damit sollte das Signal direkt an deine Socketklasse geleitet werden, ohne Eventloop. Bei mir hat's funktioniert. :)
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Re: Anwendung ohne QApplication

Beitrag von Nash »

kallitokaco hat geschrieben:Hi

ich arbeite mit QT und OGRE, daher muss ich die eventschleife/Renderschleife von OGRE laufen lassen und kann kein QApplication.exec() ausführen. Soweit kein Problem, alles klappt ganz normal.
Weil du die Renderschleife von OGRE aufrufen musst, kannst du kein QApplication.exec() ausführen? versteh ich nicht...
Antworten