2014-03-24 3 views
3

신호가 주어지면 특정 신호가 연결된 슬롯을 어떻게 결정할 수 있습니까?pyqtBoundSignal 주어진 슬롯을 어떻게 결정합니까?

저는 신호와 슬롯을 연결하는 방법을 잘 알고 있습니다. 이것은 디버깅을위한 것입니다. I는 pyqt5 사용하고

파이썬 2.7 신호가 다수의 슬롯 또는 다수의 다른 신호들, 또는 동일한 신호/슬롯 여러번에 접속 될 수 있기 때문에 "은"슬롯 같은 것은 없다

답변

3

. 그러나 어쨌든 모든 현재 연결을 나열 할 수있는 기본 제공 API는 없습니다.

count = button.receivers(button.clicked) 

또한 connectNotifydisconnectNotify있다 - 그러나 그 방법을 재 구현하기 때문에 즉, 훨씬 더 당신을 얻을하지 않습니다

는이처럼 카운트 신호에 대한 현재 연결를 얻을 수 있습니다 객체에 대해 신호가 연결되었거나 연결 해제 된 경우에만 을 알립니다.

QtTest 모듈은 주어진 신호의 모든 방출을 기록 할 수있는 QSignalSpy (PyQt5에서만 사용 가능)을 가지고 있습니다. 그러나, 다시 말하면, 그것은 당신에게 보내지는 인수보다는 오히려 당신에게 전달 된 인수만을 줄 것입니다.

Qt가 API를 제공하지 않는 이유는 연결된 항목의 목록이 매우 변동될 수 있다고 생각합니다.

PS :

내가 분명히 당신을 요구하고 있지만 Qt는의 디버그 빌드와 함께 작동합니다 어떤 않는, dumpObjectInfo을 언급하는 것을 잊었다 - 릴리스 빌드를 위해, 그것은 아무것도하지 않습니다.

0

확실한 방법이 없습니다. 대답이 Determine signals connected to a given slot in Qt이고 더 최근 답변이 해당 페이지에서 확인하십시오. 결론은 당신이 해결하려고하는 문제점을 더 잘 설명하고 있으며, 다른 사람들은 연결을 결정하는 것을 포함하지 않는 해결책을 가지고있을 것입니다.

+0

허용 된 대답의 주된 문제점은이 질문의 관점에서 볼 때 PyQt4에만 관련이 있습니다 (이전 스타일 구문을 사용하는 경우에도 마찬가지입니다). 'QObject.connect'가 없으므로 (즉, PyQt5는 새 스타일 구문 만 지원하기 때문에) PyQt5에서 전혀 작동하지 않습니다. PyQt의 경우,'pyqtBoundSignal'이 슬롯에 연결하는 메커니즘에 연결하는 방법이 필요합니다. 이는 맞춤 신호에 대해 가능할 수 있지만 모든 내장 신호는 무엇입니까? 나는 방법을 볼 수 없다 ... – ekhumoro

+0

@ekhumoro 네, 명확히 해줘서 고마워. Qt가 이것을 지원하지 않는다는 것은 불행한 일입니다. 그래서 나는 OP가 디버깅의 다른 방법을 찾는 것이 더 나을 것이라고 생각합니다. – Schollii

관련 문제