Can Qt signals be public, protected or private?

access-specifier, c++, qt, qt-signals

Solution

No. Signals cannot be public or private. Qt signals are protected class methods.

"signals" keyword is defined in qobjectdefs.h (line 69 as for Qt 4.6.1):

#   define signals protected

UPDATE: signals are only `protected` upto and including all minor versions of Qt 4. From Qt 5.0 onwards they are `public`. See https://stackoverflow.com/a/19130831.

Problem

Can Qt signals be public, protected or private? Can I create internal signals, which are seen only inside the class? Update: I have a class with some internal signals. How can I make those signals invisible for other classes (encapsulation & information hiding)?

Original source

Related problems