PyQt5을 이용한 Python 코딩 ‘분석툴개발'(02)

이 내용은 mocamelon.com 개인 사이트에서도 확인이 가능합니다.

​1. 오늘은 Action , Menu, ToolBar 함수를 만들어서 메뉴 및 툴바에서 버튼 클릭시 함수 호출하는 법을 만들어 보겠습니다.

파일명 : TelAnalyzer_mGUI.py

    .... 이전 코딩
    self.setCentralWidget(self.mdiArea)

    # GUI 설정함수  함수이름은 사용자가 알아서 명명하면 된다
    self.createAction()    # 임이의 액션을 넣을 함수를 선언
    self.createMenu()      # 임이의 메뉴를 넣는 함수를 선언
    self.createToolBar()   # 임이의 툴바를 넣는 함수 
    ....
  # 위에서 선언한 함수를 만들어준다
  def createAction(self)
    root = QFileInfo(__file__).absolutePath()

    self.new_c_act = QAction(QIcon(root + '/image/new_case.png'), 
          "&New Case...", self, shortcut=QKeySequence.New, 
          statusTip="Create New Case", triggered=self.NewCase)
    self.close_c_act = QAction(QIcon(root + '/image/close.png'), 
          "&Close Case...", self, statusTip="Close Case", 
          triggered=self.CloseCase)

  # 메뉴를 설정하는 부분
  def createMenu(self):
    # 메뉴는 Mac에서는 확인이 불가능하고 toolbar만 확인이 가능
    self.fileMenu = self.menuBar().addMenu("&File")
    self.fileMenu.addAction(self.new_c_act)
    self.fileMenu.addAction(self.close_c_act)
    self.fileMenu.addSeparator()

  # 툴바를 설정하는 부분
  def createToolBar(self):
    self.fileToolBar = self.addToolBar("File")
    self.fileToolBar.addAction(self.new_c_act)
    self.fileToolBar.addAction(self.close_c_act)

  def NewCase(self):
    print("NewCase Test")

  def CloseCase(self):
    print("CloseCase Test")

2. 설명을 하면 __init__ 에 Action, Menu, ToolBar 설정을 한 다음

createAction 함수에서 액션을 정의해주는 부분이다

액션을 설정하여 메뉴, 툴바에 연결을 시켜주면 해당 함수로 점프해주는 부분이다

self.new_c_act 라는 임의의 값을 설정해준다음 QAction 을 이용하여 , 아이콘, 메뉴이름, shortcut , statusTip, triggered 를 설정해줘야된다.

self.new_c_act = QAction( // 액션내 속성을 설정하는 부분

QIcon(root + ‘/image/new_case.png’), // 아이콘이 저장된 위치를 설정하는 부분

“&New Case…”, // 메뉴에서 표시되는 부분 (Windows 에서만 확인가능)

self,

shortcut=QKeySequence.New, // 시퀀스가 있을때 사용한다

statusTip=”Create New Case”, // 말풍선효과

triggered=self.NewCase) // 액션을 실행하는 함수와 연결

– createMenu 함수는 windows 시스템에서 확인할 수 있고 Mac에서는 툴바만 확인이 가능하다

self.fileMenu = self.menuBar().addMenu(“&File”)

self.fileMenu.addAction(self.new_c_act)

// 액션을 연결해주는 부분 이부분을 클릭하게되면 NweCase 함수가 실행된다

– createToolBar 함수

​ self.fileToolBar = self.addToolBar(“File”)

self.fileToolBar.addAction(self.new_c_act)

​위처럼 입력을 하고 실행해보면

3. 위는 MAC을 사용했기때문에 메뉴창을 확인할 수 가 없다

버튼을 클릭하게 되면 아래와같이 나타난다

그럼 다음에 뵙겠습니다.

댓글 남기기