This made me revisit lqt, along the way I kind-of solved the problem with multiple threads in Qt 4.8 in a fragile, but semi-working way (it works until you start overriding virtual methods which may end up being called in another thread, I can give more info if anyone is interested).
The problem with this problem - emitting signals - is that some are defined protected, like dataChanged is. A signal is just a method call. Being protected means that it cannot be called "from outside", like the binding code. This means that even if I force them to be public, the compiler ends up with this:
/usr/include/qt4/QtCore/qtimeline.h:129:10: error: ‘void QTimeLine::valueChanged(qreal)’ is protected
In file included from /opt/code/lua/lqt/b/qtcore_src/qtcore_merged_build.cpp:314:0:
/opt/code/lua/lqt/b/qtcore_src/qtcore_meta_QTimeLine.cpp:320:37: error: within this context
If anyone knows of any way how to call protected methods from outside of a class in C++, please let me know!
If nothing works, I will try doing this monstrosity prior to including Qt headers: #define protected public