[SOLVED] Slot without Q_OBJECT
-
Hello,
I'd like to have a template class but unfortunately, it doesn't work with Q_OBJECT.
So I read about Q_INVOKABLE which would work I guess but be quite inconvenient.
I could connect signals to lambdas though and call the invokable methods from there.My question: Why does Qt allow connecting to lambdas but not to non-QObject classes (which lambdas are too, not?)?
Thanks!
// EDIT:
I just realized that this works:
template<class T> class Test2 : public QObject { T t = 3; public: void SltX() { std::cout << "Test2::SltX: " << t << std::endl; } }; QObject::connect(&mainWindow, &MainWindow::SigTest, &t2, &Test2<int>::SltX);
I guess I can live with the downsides of not having Q_OBJECT (is there a complete list with all of them?).
// EDIT2:
Ou, cannot have signals :-/
Damn, will templates ever be supported? So important ... -
Qt developers have investigated this before, and there is a partially-working patch.
There are still a number of important challenges to work through, but devs are focussing on other things at the moment. It is not currently being actively worked on: http://comments.gmane.org/gmane.comp.lib.qt.devel/10327