> On 16 Mar 2016, at 14:24, Nikos Chantziaras <rea...@gmail.com> wrote: > > Since in modern Qt you connect signals to functions/lambdas, is there a > reason to declare slots anymore? > > In other words, is there any difference between: > > class Foo: public QObject { > Q_OBJECT > > public slots: > void bar(); > }; > > and: > > class Foo: public QObject { > Q_OBJECT > public: > > void bar(); > }; > > I can connect to Foo::bar either way. If I don't intend to ever use the > old-style connect syntax, is there a reason to have "public slots:" anymore?
One reason that for me it’s fundamental: Readability of your code !!! Even if it wouldn’t necessary to declare “public slots”, I really strong advice to use “slots” because it explicitly say what part of your interface are supposed to be attached to a signal and what part not. It’s very common on my C++ code that only a subset of method are mean to be attached to a signal, so make this distinction clear help to understand the code and debug it more easily. Then, I don’t know if there is a real difference on connecting to a function or to a explicitly declared slot. But for sure, you cannot use always lambdas. So methods acting as slot are necessary. Ciao, Gianluca. _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest