프로그래밍 관련/PyQt
Pyqt 메뉴 만들기 상위메뉴
존버매니아.임베디드 개발자
2022. 8. 14. 15:04
반응형
파이썬[Python GUI, PyQt5 Tutorial 021] 메뉴바(Menu Bar) 만들기 (tistory.com)
최상단 메뉴바 1개 만들기
만들어진 메뉴바에 선택지 만들기
각 선택지 아래에서 실제 실행될 액션 만들기
아래 예시코드 복붙해서 실행시켜보면서 코드를 보면 이해 될 것임
import sys
from PyQt5.QtWidgets import *
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Test")
self.setGeometry(1000, 200, 700, 700)
#최상단 메뉴바 생성하기
menubar = self.menuBar()
#만들어진 메뉴바에 선택지 3개 만들기
menu1 = menubar.addMenu("파일")
menu2 = menubar.addMenu("설정")
menu3 = menubar.addMenu("Help")
#실제 실행될 action들 만들기
loadfile = QAction('laod File', self)
savefile = QAction('save File', self)
property = QAction('property', self)
help = QAction('help', self)
version = QAction('version 보기', self)
#'파일' 메뉴에 액션 2개 연결
menu1.addAction(loadfile)
menu1.addAction(savefile)
#'설정' 메뉴에 액션 1개 연결
menu2.addAction(property)
#'help' 메뉴에 액션 2개 연결
menu3.addAction(help)
menu3.addAction(version)
if __name__ == "__main__":
app = QApplication(sys.argv)
myWindow = MyWindow()
myWindow.show()
app.exec_()
- 액션 설정해주기액션 관련해서 이런저런 메소드들이 많은데 가장 기본이 될만한 기능만 예시에서 사용해보았다.
해당 액션 선택시 실행될 function 연결해주기
해당 액션에 대한 단축키 지정해주기
import sys
from PyQt5.QtWidgets import *
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Test")
self.setGeometry(1000, 200, 700, 700)
#최상단 메뉴바 생성하기
menubar = self.menuBar()
#만들어진 메뉴바에 선택지 만들기
menu1 = menubar.addMenu("파일")
#실제 실행될 action들 만들기
act_loadfile = QAction('laod File', self)
act_loadfile.triggered.connect(self.fun_loadfile) # 메뉴 선택시 실행될 function 연결
# loadfile.hovered.connect(self.fun_loadfile) # 마우스를 메뉴에 올렸을 때 (클릭은 안한 상태)
act_loadfile.setShortcut('Ctrl+L') # 단축키 셋팅
#'파일' 메뉴에 액션 1개 연결
menu1.addAction(act_loadfile)
def fun_loadfile(self):
print("loadfile run")
if __name__ == "__main__":
app = QApplication(sys.argv)
myWindow = MyWindow()
myWindow.show()
app.exec_()
반응형