PyQt 예제 3.3.1

이번 글은 단순한 프로그램 업데이트 내용이다. 새로운 내용은 거의 없고, 프로그램 메뉴나 아이콘 쪽 및 도움말 부분을 업데이트 했다.


일단, 아이콘 추가나 기타 소스 코드의 개선 부분에 대해서는 설명을 하지 않겠다. 혹시 코드가 필요하다면 아래 git 저장소를 통해서 변경된 점을 확인할 수 있다.
https://github.com/bluekyu/PyQt-Examples/commit/065807624a3def9c8a07e95b66a477bad85b142b

먼저, 이미지 관련 메뉴 추가 부분을 보겠다.
        # 이미지
        imageMenuAction = self.menuBar().addAction("이미지(&M)")
        imageMenuHelp = "이미지를 조절합니다"
        imageMenuAction.setToolTip(imageMenuHelp)
        imageMenuAction.setStatusTip(imageMenuHelp)
        imageMenu = QMenu()
        imageMenuAction.setMenu(imageMenu)
        imageMenu.addAction(openImageAction)
        imageMenu.addAction(zoomImageAction)
메뉴 추가는 이전에도 설명을 했으니 따로 설명하지 않겠다. 다만, 소스 코드 정리를 위해서 일부 변수명이 변경되었다. 바뀐 것은 위에서 말한 주소를 통해서 알 수 있다.


도움말 부분을 보면, 프로그램의 이름이나 버전 정보 등이 포함되어 있다.
__program_name__ = "PyQt Example"
# 중간 생략
        # Help About Action
        helpAboutAction = QAction("{} 정보".format(__program_name__), self)
        helpAboutHelp = "{}에 대한 정보를 보여줍니다".format(__program_name__)
        helpAboutAction.setToolTip(helpAboutHelp)
        helpAboutAction.setStatusTip(helpAboutHelp)
        self.connect(helpAboutAction, SIGNAL("triggered()"), self.HelpAbout)
# 중간 생략
        # 도움말
        aboutMenuAction = self.menuBar().addAction("도움말(&H)")
        aboutMenuHelp = "도움말 및 정보를 포함합니다"
        aboutMenuAction.setToolTip(aboutMenuHelp)
        aboutMenuAction.setStatusTip(aboutMenuHelp)
        aboutMenu = QMenu()
        aboutMenuAction.setMenu(aboutMenu)
        aboutMenu.addAction(helpAboutAction)
# 중간 생략
    def HelpAbout(self):
        from platform import python_version, system
        QMessageBox.about(self, "{} 정보".format(__program_name__),
                        """{} v. {}
                        

이 프로그램은 PyQt4에 대한 예제 프로그램입니다.

Python {} - Qt {} - PyQt {} on {}

""".format( __program_name__, __version__, python_version(), QT_VERSION_STR, PYQT_VERSION_STR, system()))
프로그램 명을 위해서 하나의 변수를 추가하였다. 단순히 참조용 변수이므로 시스템 변수처럼 보이기 위해서 __ 를 붙여서 변수명을 생성했다.

그리고 액션과 메뉴를 추가한 다음, 메뉴를 눌렀을 때 대화 상자 하나를 띄우기 위해서 메시지 박스를 사용했다.

보여줄 내용은 프로그램의 이름과 버전, 그리고 python, qt, pyqt 버전, 운영체제 정보이다.

파이썬 버전과 운영체제 정보는 platform 모듈로부터 가져올 수 있고, qt와 pyqt 버전은 QtCore 모듈에 멤버로 존재한다. 이미 QtCore는 위에서 임포트 하였으므로 멤버 변수를 그대로 가져다 쓰면 된다.

댓글 없음:

댓글 쓰기