给定信号,我如何确定特定信号连接到的插槽?
我熟悉如何连接信号和插槽,这更多是出于调试目的。
我正在使用 pyqt5,python 2.7
给定信号,我如何确定特定信号连接到的插槽?
我熟悉如何连接信号和插槽,这更多是出于调试目的。
我正在使用 pyqt5,python 2.7
没有“the”槽之类的东西,因为一个信号可以连接到多个槽,或者多个其他信号,或者同一个信号/槽多次。但无论如何,没有内置的 API 可以列出所有当前连接。
您可以获得信号的当前连接数,如下所示:
count = button.receivers(button.clicked)
还有connectNotify和disconnectNotify - 但这并没有让您走得更远,因为重新实现这些方法只会告诉您对象的哪些信号已连接或断开。
该QtTest
模块有QSignalSpy(仅在 PyQt5 中可用),它可以记录给定信号的所有发射。但是,同样,这只会给你发送的论点,而不是它们被发送到的地方。
我想 Qt 不为此提供 API 的原因是连接项的列表可能非常不稳定。
PS:
我忘了提到dumpObjectInfo,它显然可以满足您的要求,但只能与 Qt 的调试版本一起使用 - 对于发布版本,它什么也不做。
没有可靠的方法:查看已接受的确定连接到 Qt 中给定插槽的信号的答案以及 Kuba 在该页面上的最新答案。结论是您最好说明您要解决的问题,也许其他人会有不涉及确定连接的解决方案。