본문 바로가기
파이썬 프로그래밍/PyQt5 공부하기

2. PyQt5 기초(툴팁, 상태바, 동작정의, 메뉴바)

by Majestyblue 2024. 11. 9.

1. 툴팁 나타내기

04) 툴팁 나타내기 - PyQt5 Tutorial - 파이썬으로 만드는 나만의 GUI 프로그램 (wikidocs.net)

 

04) 툴팁 나타내기

![](https://wikidocs.net/images/page/21860/2_4_tooltip_sample.png) - 툴팁은 어떤 위젯의 기능을 설명하는 등의 역할을…

wikidocs.net

 

import sys 
from PyQt5.QtWidgets import *
from PyQt5.QtGui import * 

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        
        #UI 초기화 함수 선언하기
        self.initUI()
        
    def initUI(self):
        self.setWindowTitle("physics Lab")
        self.setGeometry(300, 300, 400, 400) 
        self.setWindowIcon(QIcon("physics.png"))
        
        # 툴팁 폰트 설정
        QToolTip.setFont(QFont('SansSerif', 10))
        #창(MyWindow) 위젯의 툴팁
        self.setToolTip('This is a <b>QWidget</b> widget')
        
        btn = QPushButton(text = "동영상 열기", parent = self)
        # 동영상 열기 버튼에 툴팁
        btn.setToolTip('This is a <b>QPushButton</b> widget')
        btn.move(10, 10)
        btn.clicked.connect(open_movie)
        
        btn2 = QPushButton(text = "프로그램 종료", parent = self)
        btn2.move(290, 10)
        btn2.clicked.connect(self.close)

    def open_movie():
        print("동영상 불러오기를 성공하였습니다.")

app = QApplication(sys.argv)
win = MyWindow()
win.show()
app.exec_()

 

 

2. 상태바, 동작정의, 메뉴바

QMainWindow Class | Qt Widgets 5.15.18

 

QMainWindow Class | Qt Widgets 5.15.18

 

doc.qt.io

 

05) 상태바 만들기 - PyQt5 Tutorial - 파이썬으로 만드는 나만의 GUI 프로그램 (wikidocs.net)

 

05) 상태바 만들기

- 메인창(Main window)은 메뉴바, 툴바, 상태바를 갖는 전형적인 어플리케이션 창입니다. ([QMainWindow 공식 문서](https://doc.qt.io/qt…

wikidocs.net

 

06) 메뉴바 만들기 - PyQt5 Tutorial - 파이썬으로 만드는 나만의 GUI 프로그램 (wikidocs.net)

 

06) 메뉴바 만들기

![](https://wikidocs.net/images/page/21866/2_6_menubar_sample.png) - GUI 어플리케이션에서 메뉴바(menu bar…

wikidocs.net

 

메인창(QMainWindow)에는 QToolBAr, QDockWidgets, QMenuBar, QStatusBar를 추가할 수 있는 자체 레이아웃이 존재한다. 레이아웃에는 모든 종류의 위젯이 사용할 수 있는 중앙 영역(Central Widget)이 존재한다. 중앙 위젯 없이 기본 창을 만드는 것을 지원되지 않는다. 자리 표시자일뿐이라도 중앙 위젯이 있어야 한다.

 

 

import sys 
from PyQt5.QtWidgets import *
from PyQt5.QtGui import * 

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        
        #UI 초기화 함수 선언하기
        self.initUI()
        
    def initUI(self):
        self.setWindowTitle("physics Lab")
        self.setGeometry(300, 300, 400, 400) 
        self.setWindowIcon(QIcon("physics.png"))
        
        # 아이콘과 Exit 라벨을 갖는 하나의 동작(Action)을 정의
        self.exitAction = QAction(QIcon('exit.png'), 'Exit', parent=self)
        # 단축키(ShortCut)정의
        self.exitAction.setShortcut('Ctrl+Q')
        # 메뉴에 마우스를 올릴 때 상태바에 나타날 상태팁 표시
        self.exitAction.setStatusTip('Exit application')
        # 생성된(triggered) 시그널이 close 메서드에 연결되고 종료됨
        self.exitAction.triggered.connect(self.close)
        
        # 상태바 생성
        self.statusBar().showMessage('Ready')
        # 메뉴바 생성
        self.menubar = self.menuBar()
        # MacOS에서도 Windows와 동일한 결과를 얻게 함.
        self.menubar.setNativeMenuBar(False)
        # 메뉴바에 File메뉴를 만듦. &(앰퍼샌드)는 간편하게 단축키를 생성하게 함.
        # &뒤에F가 있으므로 단축기는 'Alt+F'가 된다.
        self.filemenu = self.menubar.addMenu('&File')
        # exitAction 동작을 연결함.
        self.filemenu.addAction(self.exitAction)
        
  
        btn = QPushButton(text = "동영상 열기", parent = self)
        btn.move(10, 30)
        btn.clicked.connect(open_movie)
        
        btn2 = QPushButton(text = "프로그램 종료", parent = self)
        btn2.move(290, 30)
        btn2.clicked.connect(self.close)

    def open_movie(self):
        print("동영상 불러오기를 성공하였습니다.")

app = QApplication(sys.argv)
win = MyWindow()
win.show()
app.exec_()