복붙노트

[PYTHON] 왜 PyQt connect () 구문이 그렇게 장황합니까?

PYTHON

왜 PyQt connect () 구문이 그렇게 장황합니까?

나는 단지 PyQt를 배웠고 Signals and Slots 메커니즘을보고 있습니다. 나는 장황한 구문에 약간 당황 스럽다. 왜 우리는 :

self.connect(dial, SIGNAL("valueChanged(int)"), spinbox.setValue)

나는 다음과 같이 쓰는 것을 선호한다.

self.connect(dial.valueChanged, spinbox.setValue)

누구든지 connect () 구문을 명시 적 / 상세하게 사용해야하는 이유를 말해 줄 수 있습니까?

해결법

  1. ==============================

    1.덜 장황한 PyQt의 새로운 스타일의 신호를 사용할 수 있습니다 :

    덜 장황한 PyQt의 새로운 스타일의 신호를 사용할 수 있습니다 :

    self.connect(dial, SIGNAL("valueChanged(int)"), spinbox.setValue)
    

    된다.

    dial.valueChanged.connect(spinbox.setValue)
    
  2. ==============================

    2.Luper의 대답은 이것보다 훨씬 낫지 만, 완벽을 기하기 위해 ...

    Luper의 대답은 이것보다 훨씬 낫지 만, 완벽을 기하기 위해 ...

    추악한 "오래된 스타일"문법은 C ++ 세상에서의 시대 착오적 인 표현입니다 - 사람들이 사용하는 문법을 살펴보십시오! 불쾌한...

  3. ==============================

    3.더 짧은 방법은 생성자의 키워드 인수에서 함수에 신호 이름을 지정하는 것입니다. QDial (valueChanged = spinbox.setValue). PyQt는 자동으로 valueChanged () 신호를 spinbox.setValue ()에 연결합니다.

    더 짧은 방법은 생성자의 키워드 인수에서 함수에 신호 이름을 지정하는 것입니다. QDial (valueChanged = spinbox.setValue). PyQt는 자동으로 valueChanged () 신호를 spinbox.setValue ()에 연결합니다.

  4. from https://stackoverflow.com/questions/4031489/why-is-pyqt-connect-syntax-so-verbose by cc-by-sa and MIT license