본문 바로가기
python3 selenium

Python selenium pyqt5 창닫힘 이벤트

by Pymac 2023. 11. 30.
반응형
   #pyqt5 창닫힘 이벤트 추가
    def closeEvent(self, event):

        reply = QMessageBox.question(self, '확인', '프로그램을 종료하시겠습니까?',
                                QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

        if reply == QMessageBox.Yes:
            event.accept()
            driver.quit()
            sys.exit()

        else:
            event.ignore()

이 코드는 PyQt5에서 창이 닫힐 때 발생하는 `closeEvent`를 오버라이드하여 사용자에게 종료 여부를 확인하는 기능을 추가한 부분입니다. 각 부분에 대한 설명은 다음과 같습니다:

1. **`closeEvent` 메서드 오버라이드**:

   이 메서드는 PyQt5에서 제공하는 `QWidget` 클래스의 메서드를 오버라이드한 것으로, 창이 닫힐 때 호출됩니다. 여기에 원하는 종료 동작을 구현할 수 있습니다.

2. **`QMessageBox`를 사용한 확인 대화 상자 표시**:


   PyQt에서 제공하는 `QMessageBox`를 사용하여 사용자에게 "프로그램을 종료하시겠습니까?"라는 메시지를 표시하고 Yes 또는 No를 선택하도록 합니다.

3. **사용자 선택에 따른 처리**:


   사용자가 Yes를 선택하면 `event.accept()`를 호출하여 창이 정상적으로 닫히도록 하고, 동시에 `driver.quit()`을 호출하여 Selenium 드라이버를 종료합니다. 사용자가 No를 선택한 경우에는 창을 닫지 않도록 `event.ignore()`를 호출합니다.

이러한 구현을 통해 사용자가 창을 닫을 때 프로그램 종료 여부를 묻고, 사용자의 선택에 따라 적절한 동작을 수행하도록 되어 있습니다.

반응형