메인 외부의 파이썬 스레드에서 GUI 스레드를 업데이트하는 방법을 찾으려고했습니다. sourceforge에있는 PyQt5 docs에는이를 수행하는 방법에 대한 좋은 지침이 있습니다. 그러나 나는 여전히 일을 할 수 없습니다.PyQt5 신호 및 슬롯 'QObject에 속성이 없습니다'오류가 발생했습니다.
대화 형 세션에서 다음 출력을 설명하는 좋은 방법이 있습니까? 이 객체들에 대해 emit 메소드를 호출 할 방법이 있을까요?
>>> from PyQt5.QtCore import QObject, pyqtSignal
>>> obj = QObject()
>>> sig = pyqtSignal()
>>> obj.emit(sig)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'QObject' object has no attribute 'emit'
및
>>> obj.sig.emit()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'QObject' object has no attribute 'sig'
및
>>> obj.sig = pyqtSignal()
>>> obj.sig.emit()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'PyQt5.QtCore.pyqtSignal' object has no attribute 'emit'
여기와 동일한 [PyQt5 어떤 모듈의 발광 방법을 발견? (http://stackoverflow.com/questions/17581506/pyqt5-in-what-module-is-the-emit-method -found) - __bound__ 신호에만'emit' 메서드가 있습니다. ('obj.sig = pyqtSignal()'은 여전히 언 바운드 시그널입니다.) – mata
@mata : 예, 저는 소스 포지 (sourceforge)의 PyQt5 문서에서 이러한 예제를 취하고있었습니다. [지적한] (http://stackoverflow.com/questions/17581506/pyfqt5-in-what-module-is-the-emit-method-found) emit 메서드는 바운드 신호를위한 것입니다. 즉, QObject로부터 상속받은 클래스의 멤버. 나는 위에 붙여진 대화 형 세션에서 그렇게하지 않았다는 것을 깨닫지 못했습니다. – ADB
@ mata : 호기심, 위의 세 번째 예제와 같이 ** obj.sig = pyqtSignal() **의 유용성은 무엇입니까? – ADB