Appia의 IT세상

파이썬[Python GUI, PyQt5 Tutorial 021] 메뉴바(Menu Bar) 만들기 본문

Python/Python PyQt5 (GUI)

파이썬[Python GUI, PyQt5 Tutorial 021] 메뉴바(Menu Bar) 만들기

Appia 2020. 7. 10. 07:36
반응형

파이썬[Python GUI, PyQt5 Tutorial 021] 메뉴바(Menu Bar) 만들기

 

이번 포스팅은 메뉴 바를 생성하는 부분을 한번 진행해보도록 하겠습니다. 가장 쉽게 보시기 위해서는 다음의 그림에서 빨간 부분을 한번 살펴보겠습니다. 흔히들 보는 부분이고 이런 부분들을 모두 함께 메뉴바라고 합니다. 이번 포스팅에서는 이 메뉴바를 생성하는 부분에 대해서 살펴보겠습니다. 

위에서와 같이 메모장에서 상단에 있는 부분을 메뉴바라고 볼 수 있습니다. 그럼 코드 상에서 한번 봐보고 실행을 해보도록 하겠습니다. 

 

import sys
 
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp
 
class QtGUI(QMainWindow):
 
    def __init__(self):
 
        super().__init__()
 
        self.resize(400400)
 
        self.setWindowTitle("Appia")
 
        menubar = self.menuBar()
        
        Filemenu = menubar.addMenu("파일")
 
        Filemenu1 = menubar.addMenu("편집")
 
        Filemenu2 = menubar.addMenu("서식")
 
        self.show()
 
if __name__ == '__main__':
 
    app = QApplication(sys.argv)
 
    ex = QtGUI()
 
    app.exec_()
cs

위의 코드에서 주요 살펴보실 부분은 menuBar() 부분입니다. 일단, 메뉴바를 생성하고 여기에 addMenu(item)을 통해서 각 메뉴를 추가해줍니다. 위의 코드를 실행하면 다음과 같은 결과가 나옵니다. 

그럼 이제는 위의 코드에서 조금 더 완성된 코드를 작성해보겠습니다. 위의 파일 메뉴에 몇가지 메뉴를 더 추가하고 이에 대해서 이벤트를 연결할 예정입니다. 이와 같이 메뉴에는 action을 생성하여 연결해주시면 됩니다. 그럼 다음 코드를 한번 같이 살펴보겠습니다. 

 

import sys
 
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp, QFileDialog
 
 
class QtGUI(QMainWindow):
 
    def __init__(self):
 
        super().__init__()
 
        self.resize(400400)
 
        self.setWindowTitle("Appia")
 
        menubar = self.menuBar()
 
        Filemenu = menubar.addMenu("파일")
 
        Filemenu1 = menubar.addMenu("편집")
 
        Filemenu2 = menubar.addMenu("서식")
 
        loadfile = QAction('laod File ...', self)
 
        savefile = QAction('save File ...', self)
 
        exit = QAction('Exit',self)
 
        loadfile.triggered.connect(self.add_open)
 
        savefile.triggered.connect(self.add_save)
 
        exit.triggered.connect(qApp.quit)
 
        Filemenu.addAction(loadfile)
 
        Filemenu.addAction(savefile)
 
        Filemenu.addAction(exit)
 
        self.show()
        
        
    def add_open(self):
 
        FileOpen = QFileDialog.getOpenFileName(self, 'Open file''./')
 
 
    def add_save(self):
        
        FileSave = QFileDialog.getSaveFileName(self, 'Save file''./')
 
 
if __name__ == '__main__':
 
    app = QApplication(sys.argv)
 
    ex = QtGUI()
 
    app.exec_()
cs

 

위의 코드를 실행하면 총 파일 메뉴에 Load file/Save File/ Exit 이 3가지 메뉴를 추가하였습니다. 그리고 Load File/Save File의 경우 앞서서 File Dialog에서 사용된 부분을 활용하여 파일이름만 변수로 가져오도록 해봤습니다. (다음 링크 참조)

파이썬[Python GUI, PyQt5 Tutorial 016] 파일다이어로그(QFileDialog)만들기

 

그리고 exit의 경우 qApp 모듈을 불러와서 종료하도록하였습니다. 그럼 간단히 실행 결과를 한번 살펴보겠습니다. 

이와 같이 작업이 될 수 있도록 하였습니다. 오늘은 파이썬[Python GUI, PyQt5 Tutorial 021] 메뉴바(Menu Bar) 만들기 라는 주제로 메뉴바를 생성하고 메뉴와 관련된 각 부분에 대해서 아이콘을 작성하는 방법에 대해서 살펴봤습니다. 혹시 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments