Using Signals and Slots
PyQt의 위젯은 signals and slots 을 사용하여 객체 간에 통신합니다. 이벤트와 마찬가지로 신호는 사용자의 행동이나 내부 시스템에 의해 생성 될 수 있습니다. 슬롯은 신호에 응답하여 실행되는 메소드입니다. 예를 들어, QPushButton을 누르면 클릭된 신호가 방출됩니다. 이 신호는 사용자가 응용 프로그램을 종료할 수 있도록 close()와 같은 기본 제공 PyQt 슬롯에 연결하거나 일반적으로 Python 함수인 사용자 지정 슬롯에 연결할 수 있습니다. 신호는 슬롯에 추가 데이터를 보내고 이벤트에 대한 자세한 정보를 제공하는 데 사용할 수 있기 때문에 유용합니다.
클릭 된 신호는 미리 정의 된 많은 Qt 신호 중 하나 일뿐입니다. 방출할 수 있는 신호 유형은 위젯 클래스에 따라 다릅니다. PyQt는 미리 정의된 특정 이벤트 처리 함수를 호출하여 위젯에 이벤트를 제공합니다. 이러한 기능은 show() 또는 close() 와 같은 창 작업과 관련된 함수부터 setStyleSheet()를 사용한 GUI 모양, 마우스 보도 및 릴리스 이벤트 등에 이르기까지 다양합니다.
https://www.riverbankcomputing.com/static/Docs/PyQt6/signals_slots.html
Support for Signals and Slots — PyQt Documentation v6.3.0
Support for Signals and Slots One of the key features of Qt is its use of signals and slots to communicate between objects. Their use encourages the development of reusable components. A signal is emitted when something of potential interest happens. A slo
www.riverbankcomputing.com
Using Event Handlers to Handle Events
Event handlers 는 이벤트에 응답하는 함수입니다. 이벤트를 전달하기 위해 QEvent 서브클래스가 생성되는 동안 해당 QWidget 메서드가 실제로 이벤트를 처리합니다. closeEvent() event handler 를 사용하여 창을 닫았습니다. close event object 를 만드는 클래스는 QCloseEvent입니다.
Difference Between Signals and Slots and Event Handlers
둘 사이에 약간의 겹침이 있지만 signals and slots 은 일반적으로 다른 위젯과 다른 PyQt 클래스 간의 통신에 사용됩니다. event handlers는 외부 활동에 의해 생성되고 QApplication에 의해 이벤트 루프를 통해 전달됩니다. 또 다른 중요한 차이점은 신호가 방출될 때 알림을 받고 그에 따라 조치를 취한다는 것입니다. 이벤트가 발생할 때마다 이벤트를 처리해야 합니다. 마지막으로, 위젯과 함께 신호를 사용하여 기능을 향상시킬 수 있지만 위젯의 기능을 수정할 때 event handlers를 다시 구현해야합니다. 대부분의 경우 signals and slots , 이벤트 처리기를 함께 사용하여 작업을 완료합니다.
Handling Key Events
• keyPressEvent() – Handles a key event when the key is pressed
• keyReleaseEvent() – Handles a key event when the key is released
'Beginning PyQt' 카테고리의 다른 글
Working with the Clipboard (0) | 2022.05.26 |
---|---|
Creating GUIs with Qt Designer (0) | 2022.05.26 |
Styling Your GUIs (0) | 2022.05.21 |
Dialog Classes (0) | 2022.05.21 |
QIcon Class (0) | 2022.05.21 |