예제로 배우는 PyQt

예제 중심으로 배우는 PyQt 프로그래밍

예제로 배우는 PyQt 예제 중심으로 배우는 PyQt 프로그래밍

이전 버전과 비호환성 경고 5.5

해당 내용 주소

http://pyqt.sourceforge.net/Docs/PyQt5/incompatibilities.html#pyqt-v5-5

PyQt v5.5

Conversion of Latin-1 Strings to QByteArray

This version removes the automatic conversion of a Latin-1 encoded string when a QByteArray is expected. It was deprecated in PyQt v5.4.

Unhandled Python Exceptions

There are a number of situations where Python code is executed from C++. Python reimplementations of C++ virtual methods is probably the most common example. In previous versions, if the Python code raised an exception then PyQt would call Python’s PyErr_Print() function which would then call sys.excepthook(). The default exception hook would then display the exception and any traceback to stderr. There are number of disadvantages to this behaviour:

파이썬 코드가 C ++에서 실행되는 경우가 많이 있습니다. 아마도 C ++ 가상 메소드의 파이썬 재 구현이 가장 일반적인 예일 것입니다. 이전 버전에서 Python 코드가 예외를 발생 시키면 PyQt는 Python의 PyErr_Print () 함수를 호출하여 sys.excepthook ()을 호출합니다. 기본 예외 훅은 예외와 모든 역 추적을 stderr에 표시합니다. 이 동작에는 여러 가지 단점이 있습니다.

  • the application does not terminate, meaning the behaviour is different to when exceptions are raised in other situations
    응용 프로그램이 종료되지 않습니다. 즉, 다른 상황에서 예외가 발생할 때와 다른 동작을 의미합니다.
  • the output written to stderr may not be seen by the developer or user (particularly if it is a GUI application) thereby hiding the fact that the application is trying to report a potential bug.
    stderr에 기록 된 출력은 개발자 또는 사용자 (특히 GUI 응용 프로그램 인 경우)에서 볼 수 없으므로 응용 프로그램이 잠재적 인 버그를보고하려고한다는 사실을 숨 깁니다.

This behaviour was deprecated in PyQt v5.4. In PyQt v5.5 an unhandled Python exception will result in a call to Qt’s qFatal() function. By default this will call abort() and the application will terminate. Note that an application installed exception hook will still take precedence.
이 동작은 PyQt v5.4에서 사용되지 않습니다. PyQt v5.5에서 처리되지 않은 파이썬 예외는 Qt의 qFatal () 함수를 호출하게됩니다. 기본적으로이 메서드는 abort ()를 호출하고 응용 프로그램이 종료됩니다. 응용 프로그램이 설치 한 예외 훅이 여전히 우선 순위를가집니다.


이러한 내용으로 이전 버전까지는 에러 메세지를 잘 뱉었습니다만 이제는 우리가 직접 예외훅을 만들어서 처리해야 합니다.

재현 및 대안코드

댓글

댓글 본문
graphittie 자세히 보기