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을 클릭하면 프로그램이 종료됩니다.
주요 학습 포인트
- PyQt5에서 QMainWindow를 활용한 GUI 애플리케이션 개발 방법을 익힐 수 있습니다.
- 메뉴와 액션을 생성하고 연결하는 과정을 이해할 수 있습니다.
- 상태 표시줄을 사용하여 사용자 경험(UX)을 향상시키는 방법을 배울 수 있습니다.
PyQt5를 활용하면 이 외에도 다양한 기능을 쉽게 구현할 수 있습니다. 메뉴에 서브 메뉴를 추가하거나, 도구 모음을 생성하는 방법도 이어서 학습해 보세요! 😊
728x90
반응형