给定信号,我如何确定特定信号连接到的插槽?
我熟悉如何连接信号和插槽,这更多是为了调试目的。
我正在使用 pyqt5,python 2.7
最佳答案
没有“那个”插槽这样的东西,因为一个信号可以连接到多个插槽,或者多个其他信号,或者多次连接到同一个信号/插槽。但无论如何,没有内置的 API 可以列出所有当前连接。
您可以获得信号的当前连接的计数,如下所示:
count = button.receivers(button.clicked)
还有connectNotify和 disconnectNotify - 但这不会让您走得更远,因为重新实现这些方法只会告诉您哪些信号已为该对象连接或断开。
QtTest
模块有 QSignalSpy (仅在 PyQt5 中可用),它可以记录给定信号的所有发射。但是,同样,这只会为您提供已发送的参数,而不是它们发送到的位置。
我想 Qt 不为此提供 API 的原因是连接项的列表可能非常不稳定。
附言:
我忘了说 dumpObjectInfo ,它显然可以满足您的要求,但只能与 Qt 的调试版本一起使用 - 对于发布版本,它什么都不做。
关于python - 给定一个 pyqtBoundSignal 如何确定插槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22622434/