4

给定信号,我如何确定特定信号连接到的插槽?

我熟悉如何连接信号和插槽,这更多是出于调试目的。

我正在使用 pyqt5,python 2.7

4

2 回答 2

8

没有“the”槽之类的东西,因为一个信号可以连接到多个槽,或者多个其他信号,或者同一个信号/槽多次。但无论如何,没有内置的 API 可以列出所有当前连接。

您可以获得信号的当前连接数,如下所示:

    count = button.receivers(button.clicked)

还有connectNotifydisconnectNotify - 但这并没有让您走得更远,因为重新实现这些方法只会告诉您对象的哪些信号已连接或断开。

QtTest模块有QSignalSpy(仅在 PyQt5 中可用),它可以记录给定信号的所有发射。但是,同样,这只会给你发送的论点,而不是它们被发送到的地方。

我想 Qt 不为此提供 API 的原因是连接项的列表可能非常不稳定。

PS:

我忘了提到dumpObjectInfo,它显然可以满足您的要求,但只能与 Qt 的调试版本一起使用 - 对于发布版本,它什么也不做。

于 2014-03-25T04:01:32.163 回答
0

没有可靠的方法:查看已接受确定连接到 Qt 中给定插槽的信号的答案以及 Kuba 在该页面上的最新答案。结论是您最好说明您要解决的问题,也许其他人会有不涉及确定连接的解决方案。

于 2014-03-27T02:56:08.803 回答