Dado un pyqtBoundSignal cómo determinar la ranura?

Dada la señal, ¿cómo puedo determinar la ranura a la que está conectada una señal en particular?

Estoy familiarizado con la forma de conectar la señal y las ranuras, esto es más para propósitos de depuración.

Estoy usando pyqt5, python 2.7

No hay tal cosa como “la” ranura, porque una señal puede conectarse a múltiples ranuras, o varias otras señales, o la misma señal / ranura varias veces. Pero en cualquier caso, no hay una API integrada que pueda enumerar todas las conexiones actuales.

Puede obtener un recuento de las conexiones actuales para una señal, como esta:

count = button.receivers(button.clicked) 

También hay connectNotify y disconnectNotify , pero eso no le lleva mucho más lejos, porque la reimplementación de esos métodos solo le dirá qué señales se conectaron o desconectaron para el objeto.

El módulo QtTest tiene QSignalSpy (solo disponible en PyQt5), que puede registrar todas las emisiones de una señal dada. Pero, nuevamente, eso solo le dará los argumentos que se enviaron, en lugar de a dónde se enviaron.

Supongo que la razón por la que Qt no proporciona una API para esto es que la lista de elementos conectados es potencialmente muy volátil.

PD:

Olvidé mencionar dumpObjectInfo , que aparentemente hace lo que estás pidiendo, pero solo funcionará con una versión de depuración de Qt: para las versiones de lanzamiento, no hace nada.

No hay una forma sólida de hacerlo: verifique la respuesta aceptada de Determine las señales conectadas a una ranura determinada en Qt y la respuesta más reciente de Kuba en esa página. La conclusión es que está mejor diciendo qué problema está tratando de resolver, quizás otros tengan una solución que no implique determinar las conexiones.