Señales Qt y slots: permisos

Hay discrepancias entre las respuestas respetadas aquí en SO y los documentos reales de Qt.

he leídoesta pregunta Y quiero más aclaraciones. ¿Alguien puede confirmar?

Una señal es siempreprotected, por lo tanto, solo puede ser emitido por la clase o cualquiera de sus subclases. No estoy seguro de que esto sea cierto; La pregunta anterior muestra respuestas que apoyan esta afirmación. Pero elDocs qt decir:Signals are public access functions and can be emitted from anywhere, but we recommend to only emit them from the class that defines the signal and its subclasses. Entonces, ¿cuál es?Las tragamonedas son solo funciones, y por lo tanto pueden ser públicas, privadas o protegidas. Obviamente una clase externa.será tener la capacidad de controlar si su clase conecta una de sus propias señales a una de sus propias ranuras si la ranura es pública. Sin embargo, de nuevo, la información de SO difiere de los documentos, que dicen:a signal emitted from an instance of an arbitrary class can cause a private slot to be invoked in an instance of an unrelated class. Esto significa queprivate ¿No es respetado por el mecanismo de señal / ranura?Las palabras público, privado, protegido no tienen utilidad para trabajar con elsignal palabra claveLa señal emitida essiempre disponible para todas las demás clases, es decir, cualquier otra clase siempre puede conectarse a esa señal (independientemente de su permiso para emitir la señal).A pesar de que todas las clases pueden ver todas las señales, aún podría tener dos clases con señales del mismo nombre desde elconnect La función toma el nombre de la clase como un prefijo de señal (es decir,SomeClass::itsSignal)

Respuestas a la pregunta(3)

Su respuesta a la pregunta