1. PyQt5 시작하기
import sys
from PyQt5.QtWidgets import *
# 현재 소스코드 파일에 대한 경로(sys.argv)를 QApplication으로 전달하여
# QApplication 객체 생성
app = QApplication(sys.argv)
# 윈도우에 대한 객체 생성
win = QWidget()
# 객체가 화면에 보여지도록 show 메서드 호출
win.show()
# 사용자로부터 입력되는 이벤트를 처리하기 위한 이벤트 루프
# 닫기 버튼을 누를 때 까지 종료하지 않고 계속 실행됨.
app.exec_()
2. 윈도우 만들고 꾸미기
아이콘은 여기서 가져옴
Physics - Free education icons (flaticon.com)
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import * # QIcon를 사용하기 위해 임포트
# 부모 클래스인 QMainWindow 를 상속받아 사용
# 부모 클래스의 인스턴스 속성을 사용하기 위해 super() 함수 사용
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
#QMainWindow 클래스에서 메소드 상속
self.setWindowTitle("physics Lab") # 제목 변경
self.setGeometry(300, 300, 400, 400) # 크기 변경
self.setWindowIcon(QIcon("physics.png")) # 아이콘 생성
#버튼 생성, 현재 위도우를 바인딩하는 변수는 self
btn = QPushButton(text = "동영상 열기", parent = self)
btn.move(10, 10)
app = QApplication(sys.argv)
# MyWindow()에 대한 객체 생성
win = MyWindow()
win.show()
app.exec_()
3. 위젯 이벤트 처리
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
def open_movie():
print("동영상 불러오기를 성공하였습니다.")
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("physics Lab")
self.setGeometry(300, 300, 400, 400)
self.setWindowIcon(QIcon("physics.png"))
#버튼을 클릭하면 open_movie를 실행(콜백 함수)
#콜백함수는 이벤트에 의해 호출되는 함수를 의미한다.
btn = QPushButton(text = "동영상 열기", parent = self)
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_()
'파이썬 프로그래밍 > PyQt5 공부하기' 카테고리의 다른 글
6. PyQt5와 opencv 연동하기 : 동영상 불러오기 (0) | 2024.11.24 |
---|---|
5. PyQt5와 opencv 연동하기 : 이미지 불러오기 (0) | 2024.11.21 |
4. PyQt5 기초(Box배치, Grid배치) (0) | 2024.11.11 |
3. PyQt5 기초(툴바, 스타일) (0) | 2024.11.10 |
2. PyQt5 기초(툴팁, 상태바, 동작정의, 메뉴바) (0) | 2024.11.09 |