2013-07-10 2 views
0

누군가 나를 위생 검사로이 코드를 실행하는 데 도움이 될 것입니다.PyQt5는 어떤 모듈에서 이미 발견 된 메소드입니까?

Python 3.3.1 (default, Apr 17 2013, 22:30:32) 
[GCC 4.7.3] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>>from PyQt5.QtCore import pyqtSignal 
>>>for i in dir(pyqtSignal): 
... if i == 'emit': 
...   print(True) 
... 
>>> 

다른 사람에게 true가 반환됩니까? PyQt4에서 QObject를 가져 오기에 그 참고 :

>>> from PyQt4.QtCore import QObject 
>>> for i in dir(QObject): 
...  if i == 'emit': 
...    print(True) 
... 
True 

답변

2

pyqtSignal 물론 그것은 emit 속성이없는, 그래서 그것은 신호를 생성하기위한 공장 함수, 신호가 아닙니다. descriptor을 반환하며, QObject 인스턴스에 바인딩되면 실제 신호 객체를 반환합니다. 즉 바운드 신호에만 emit 메서드가 있습니다.

QObject.emit 메서드는 새로운 스타일 신호가 pyqt에 도입되기 전의 유물이며 지금은 has been removed입니다. 바운드 신호에 대해 emit 메서드를 사용하여 출력합니다.

class SomeObject(QObject): 
    someSignal = pyqtSignal(...) 

instance = SomeObject() 
instance.someSignal.emit(value) 
+1

감사합니다. 이제 비가 내렸음을 알 수 있습니다. ;) – ADB

관련 문제