PyQt 예제 3.4.1

드디어 3버전의 마지막 예제다. 메인 윈도우와 관련한 책 내용은 모두 다루어봤다. 이 버전에서는 문서화 작업 및 코드 정리를 위한 객체 분리를 다루었다.

먼저, 문서화 작업으로 pydoc 을 사용하기 위해 코드에 문서화 주석을 추가하였다.

일단, 파이썬에서 pydoc을 사용하면 파이썬의 모듈, 클래스, 함수에 추가된 문서 주석을 추출해서 하나의 html로 만들어준다. 이를 통해, 코드의 주석과 문서화 작업을 한번에 해결할 수 있다.

각 문서 주석을 다는 방법은 모듈, 클래스, 함수의 시작 부분에 문서 문자열을 추가해주면 된다.

여기서는 모듈에서는 파일의 시작 부분에 '''문서 주석''' 과 같이 처리해서 여러 줄의 주석을 추가하였다.
클래스에서는 class 문 바로 아래에 '''클래스 주석'''을 추가해주면 된다. 함수도 def 문 아래에 주석을 추가하면 된다.
class MainWindow(QMainWindow):
    """메인 윈도우를 구성하는 클래스"""

    def __init__(self, parent=None):
        """각종 객체들 초기화 및 위치 구성
        
        인자: parent - 부모 윈도우
        리턴: 없음"""
위와 같이 추가를 해주면 된다.

문서 주석을 추가한 후에 "pydoc3 -w ./파일명"을 해주면 html 로 된 문서 파일이 생성된다.
(윈도우즈에서도 마찬가지로 하면 될텐데, pydoc3 의 경로가 PATH 에 존재해야 한다. 그리고 pydoc은 2버전, pydoc3는 3버전용이다.)



그 다음으로 메인 윈도우와 Dock 위젯들의 객체를 분리하여 따로 관리를 더 쉽게 하기 위해서 코드를 나누었다.

단순히 객체의 속성이나 메소드들은 다른 파일에 넣고 원래 있던 코드 부분을 제거 하는 방식으로 진행하였다.

상단한 코드가 바뀌었고 특별한 설명은 필요 없으므로 아래 주소를 통해서 코드의 변경점을 확인할 수 있다.

분리된 코드: https://github.com/bluekyu/PyQt-Examples/commit/4f4648b3dcd98cc9520c70599757ee402710a174
분리 후 수정된 코드: https://github.com/bluekyu/PyQt-Examples/commit/09d48da967f62768e3ada3290130ade72421fca9#diff-5


이로써 3버전까지 모두 설명을 마쳤다. 메인 윈도우를 다루어봄으로써 어느 정도 일반적이 프로그램을 만들 수 있게 되었다.

다음 버전에서는 Qt Designer 를 통해서 윈도우를 쉽게 꾸밀 수 있는 방법을 알아보겠다.
(하지만 아직 공부는 하지 않아서 언제 글을 작성할 수 있을 지는 모르겠다.)

댓글 없음:

댓글 쓰기