I have a console application (QCoreApplication) I'm writing that is
event-driven. The app (I'll call it the "Controller") creates an
instance of a controller thread that does pretty much all the work in
the application, starts the thread, and then enters it's event loop
The thread creates a QTcpServer instance and enters its event loop
(QThread::exec()). Signals are used to wake the thread to establish
connections, and accept periodic status updates delivered over the
sockets. At regular intervals these status updates are packaged and sent
to another application, over another socket. In essence, this thread
(and application) is like a post office, with some intelligence.
I need to add a console command-line interface (CLI) to the Controller
application, to display status and also to inject status updates for
debugging purposes. One possibility is to create the interface as a
separate app that connects to the controller like any other app, and add
functionality to the controller thread so that if the CLI app is
connected all traffic is duplicated and sent to the CLI.
I'm also looking into the possibility of adding the CLI to the
controller thread directly. Ideally I'd like a keypress to trigger an
event that would be handled in the thread (i.e. keypresses would be
collected and appended to form command strings). The problem is that the
application and thread each have their own event loops, and it appears
that events are being sent to the application, and are not passed to the
So, how do I pass events to the thread? Filters apparently will not
work, because event filters require the two objects to be in the same
Or is there a better way to do this? Any suggestions would be
Thanks very much!
To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx with
"unsubscribe" in the subject or the body.
List archive and information: http://lists.trolltech.com/qt-interest/