투케이2K

139. (python/파이썬) [Mac Os] : [PyQt5] : menuBar 메뉴바 생성 및 QtWidgets.QAction 위젯 추가 connect 이벤트 지정 본문

Python

139. (python/파이썬) [Mac Os] : [PyQt5] : menuBar 메뉴바 생성 및 QtWidgets.QAction 위젯 추가 connect 이벤트 지정

투케이2K 2024. 5. 21. 05:30
반응형

[개발 환경 설정]

개발 툴 : VsCode

개발 언어 : python

 

[소스 코드]

# --------------------------------------------------------------
# [import]
# --------------------------------------------------------------
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
# --------------------------------------------------------------




# --------------------------------------------------------------
# [요약 설명]
# --------------------------------------------------------------
# 1. PyQt 파이썬에서 GUI 프로그램을 만들 때 사용되는 모듈입니다
# --------------------------------------------------------------
# 2. PyQt5 를 이용한 모든 프로그램은 반드시 QApplication 객체를 생성해야합니다
# --------------------------------------------------------------
# 3. QApplication 객체의 exec_ 메소드를 호출하여 이벤트 루프를 시작합니다
# - 사용자가 마우스클 클릭하거나 키보드를 입력하는 것과 같은 동작 처리
# --------------------------------------------------------------
# 4. show 메소드를 호출해 화면에 윈도우 창을 표시하게 합니다
# --------------------------------------------------------------
# 5. 모듈 설치 참고 사이트 : https://blog.naver.com/kkh0977/223450546166
# --------------------------------------------------------------



# --------------------------------------------------------------
# [GUI Form Class]
# --------------------------------------------------------------
class MyWindow(QMainWindow):
    def __init__(self): # [클래스 생성자 초기화]
        super().__init__()
        self.setGeometry(300, 300, 800, 400) # [크기 지정 : x , y, width, height]

        # [Actions : 자식 이벤트 버튼 생성]
        exit = QAction("Exit", self) # [메인 설명]
        exit.setShortcut("Ctrl+Q") # [부연 설명]
        exit.setStatusTip('Exit application')
        exit.triggered.connect(self.btnClick)

        # [상태바 생성]
        self.statusBar()

        # [Menu Bar : 메뉴 바 설정]
        menu = self.menuBar()
        menu.setNativeMenuBar(False)
        file = menu.addMenu("파일") # [파일 메뉴 생성]
        file.addAction(exit) # [파일 메뉴에 >> 자식 Exit 추가]

        # [타이틀 지정]
        self.setWindowTitle('Menubar')


    def btnClick(self): # [자식 Exit 이벤트] 
        print("")
        print("----------------------------------------")
        print("btnClick :: 버튼 클릭 이벤트 발생 >> GUI 창 닫기")
        print("----------------------------------------")
        print("")
        QApplication.instance().quit() # [GUI 창 닫기]



# --------------------------------------------------------------
# [main start]
# --------------------------------------------------------------


# [QApplication 정의]
app = QApplication(sys.argv)


# [프로그램 표시 수행]
win = MyWindow()
win.show()


# [이벤트 처리]
app.exec_()


# --------------------------------------------------------------
# [main end]
# --------------------------------------------------------------
 

[결과 출력]

 

 
반응형
Comments