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
Anwendung ohne QApplication
korrekt...Daher denke ich, dass das Problem da liegt, dass Qt nicht überprüft ob Daten angekommen sind, da ja keine QApplication ausgeführt wird.
http://doc.trolltech.com/4.3/qcoreappli ... cessEventswie kann ich QT alle Signale und Slots einmal überprüfen lassen.
Ist zwar "static", aber ich habe keine Ahnung ob das auch ohne definierte QCoreApplication funktioniert...
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.
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.
Re: Anwendung ohne QApplication
Weil du die Renderschleife von OGRE aufrufen musst, kannst du kein QApplication.exec() ausführen? versteh ich nicht...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.