I am working on a semi-realtime system using C++. Lots of the design and logic are event based. While looking for some event framework for c++, I found Qt. The signal/slot, state machine in Qt looks very good to my situation. I prefer them much more than boost. Also, the QObject system has a lot of nice features, e.g. QObject Model, moc, parent-child object memory management etc. But I know little about Qt, I have a few questions here.
Giving I am pretty familiar with c++/stl now, is it worth the time to learn Qt? Anyway I will not use its most popular part, UI.
What about the performance of Qt comparing to stl/boost? Since the application is realtime, performance is a key requirement. For example, I have to design the data layout very carefully to maximize the CPU cache utilization. All those features provided by Qt should bring some overhead. How much impact would that be?
What about multi-threading in Qt development? Can I use stl thread or pthread with Qt objects or I have to use threading provided by Qt? Is it easy to use?