본문 바로가기
Dev/PyQt

QAction

by wenect 2024. 8. 11.

QAction은 PyQt에서 메뉴 항목이나 툴바 버튼과 같은 사용자 인터페이스 요소를 정의하고 관리하는 데 사용되는 클래스입니다. QAction 객체는 일반적으로 사용자가 트리거할 수 있는 특정 작업(액션)을 나타내며, 이 작업은 메뉴에서 선택되거나 툴바 버튼이 클릭될 때 실행됩니다.

UI, 동작을 코드작성

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

class Example(QMainWindow):

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

        self.initUI()

    def initUI(self):

        # 종료 QAction 생성
        exitAct = QAction(QIcon('exit.png'), 'Exit', self)
        exitAct.setShortcut('Ctrl+Q')
        exitAct.setStatusTip('Exit application')
        exitAct.triggered.connect(qApp.quit)

        # 메뉴바 생성
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAct)

        # 툴바 생성
        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAct)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('QAction Example')
        self.show()

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

ui를 QtDesigner로 만들고 동작을 코드에서 작성

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

class Example(QMainWindow):

    def __init__(self):
        super().__init__()
        # .ui 파일을 로드합니다.
        uic.loadUi(r'example.ui', self)

        # .ui 파일에서 불러온 QAction을 연결합니다.
        self.actionOpen.triggered.connect(self.openFile)
        self.actionExit.triggered.connect(qApp.quit)

    def openFile(self):
        print("Open action triggered")

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

example.py
0.00MB
example.ui
0.00MB
myQAction.py
0.00MB

댓글