728x90
반응형

PyQt5는 GUI 애플리케이션을 제작하기 위한 강력한 라이브러리로, 메뉴와 같은 다양한 인터페이스 구성 요소를 쉽게 구현할 수 있습니다. 이번 글에서는 PyQt5를 사용하여 간단한 메뉴를 만드는 방법을 소개합니다.


전체코드

아래 코드는 PyQt5를 사용하여 메뉴를 생성하는 간단한 예제입니다. File 메뉴와 Exit 액션을 추가하여, 사용자가 메뉴를 통해 프로그램을 종료할 수 있도록 구성되어 있습니다.

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp


class MyApp(QMainWindow):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # Exit 액션 정의
        exitAction = QAction('Exit', self)
        exitAction.setShortcut('Ctrl+Q')  # 단축키 설정
        exitAction.setStatusTip('Exit application')  # 상태 표시줄 메시지
        exitAction.triggered.connect(qApp.quit)  # 종료 이벤트 연결

        # 상태 표시줄 생성
        self.statusBar()

        # 메뉴바 생성
        menubar = self.menuBar()
        menubar.setNativeMenuBar(False)  # macOS의 기본 메뉴바 동작을 비활성화
        filemenu = menubar.addMenu('&File')  # File 메뉴 추가
        filemenu.addAction(exitAction)  # Exit 액션 추가

        # 창 속성 설정
        self.setWindowTitle('Menubar')
        self.setGeometry(300, 300, 300, 200)
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

728x90

코드 설명

1. QMainWindow 기반 클래스 사용

QMainWindow는 PyQt5에서 창을 생성하기 위한 표준 클래스입니다. 메뉴바, 툴바, 상태 표시줄 등 다양한 GUI 구성 요소를 기본적으로 지원합니다.

2. Exit 액션 추가

exitAction = QAction('Exit', self)
exitAction.setShortcut('Ctrl+Q')  # 단축키 설정
exitAction.setStatusTip('Exit application')  # 상태 표시줄에 표시될 메시지
exitAction.triggered.connect(qApp.quit)  # 메뉴 선택 시 애플리케이션 종료
  • QAction: 메뉴에서 사용할 액션을 정의합니다.
  • setShortcut: 단축키를 설정합니다.
  • setStatusTip: 상태 표시줄에 표시할 힌트를 제공합니다.
  • triggered.connect: 액션이 트리거될 때 실행할 작업을 연결합니다.

3. 메뉴바 생성

menubar = self.menuBar()
menubar.setNativeMenuBar(False)  # macOS 기본 메뉴바 비활성화
filemenu = menubar.addMenu('&File')  # File 메뉴 추가
filemenu.addAction(exitAction)  # Exit 액션 추가
  • menuBar: 메뉴바를 생성합니다.
  • addMenu: 메뉴바에 새 메뉴를 추가합니다.
  • addAction: 특정 메뉴에 액션을 연결합니다.
  • setNativeMenuBar(False): macOS에서는 기본적으로 메뉴바가 상단에 고정됩니다. 이를 창 내부로 표시하려면 해당 설정을 비활성화합니다.

4. 상태 표시줄 생성

self.statusBar()
  • 메뉴나 액션과 관련된 힌트를 사용자에게 제공하기 위해 상태 표시줄을 생성합니다.

5. 창 속성 설정

self.setWindowTitle('Menubar')
self.setGeometry(300, 300, 300, 200)
self.show()
  • setWindowTitle: 창의 제목을 설정합니다.
  • setGeometry: 창의 위치와 크기를 설정합니다.

실행 결과

위 코드를 실행하면 다음과 같은 GUI 창이 나타납니다:

  • File 메뉴 클릭 시 Exit 옵션이 나타납니다.
  • Ctrl+Q 단축키를 누르거나 Exit을 클릭하면 프로그램이 종료됩니다.

주요 학습 포인트

  1. PyQt5에서 QMainWindow를 활용한 GUI 애플리케이션 개발 방법을 익힐 수 있습니다.
  2. 메뉴와 액션을 생성하고 연결하는 과정을 이해할 수 있습니다.
  3. 상태 표시줄을 사용하여 사용자 경험(UX)을 향상시키는 방법을 배울 수 있습니다.

PyQt5를 활용하면 이 외에도 다양한 기능을 쉽게 구현할 수 있습니다. 메뉴에 서브 메뉴를 추가하거나, 도구 모음을 생성하는 방법도 이어서 학습해 보세요! 😊

728x90
반응형

+ Recent posts