이 블로그의 포스팅은 기본적인 PyQt5에 대해 알고 있다고 가정한다.
이 블로그의 포스팅은 기본적인 파이썬 라이브러리에 대해 알고 있다고 가정한다.
파이썬 툴로는 파이참(PyCharm)을 사용한다.
PyQt5란??
- PyQt5는 Qt5 어플리케이션 프레임워크에 대한 파이썬 버전입니다. Qt는 플랫폼에 관계없이 다양한 기능을 포함하는 C++ 라이브러리이자 개발툴입니다.
- PyQt5는 이러한 1000여 개의 클래스들을 포함하는 파이썬 모듈의 모음입니다.
- PyQt5는 윈도우, 리눅스, macOS, 안드로이드, iOS를 지원합니다.
- PyQt5의 홈페이지(https://www.riverbankcomputing.com/software/pyqt/intro)에서 최신의 그리고 안정적인 버전의 PyQt5와 최신 버전의 문서를 얻을 수 있습니다.
- PyQt5 개발자는 GPL과 상업용 라이센스 중 하나를 선택할 수 있습니다.
(PyQt5 라이센스 관련: https://www.riverbankcomputing.com/commercial/license-faq)
여러가지 PyQt5에 대한 도움을 얻을 수 있는 사이트를 우선 공유한다.
Qt | Cross-platform software development for embedded & desktop
Qt is the faster, smarter way to create innovative devices, modern UIs & applications for multiple screens. Cross-platform software development at its best.
www.qt.io
01. 소개 (Introduction)
- PyQt5 툴킷의 기본적인 기능들에 대해 다룹니다. - 제공되는 예제 코드들은 파이썬3으로 작성되고 Windows, macOS 환경에서 테스트되었습니다. # ...
wikidocs.net
https://wikidocs.net/book/1664
주식투자를 위한 PyQt GUI 프로그래밍
PyQt
wikidocs.net
이 외에도 Stack Overflow나 Qt forum 등 많은 사이트가 있으니 참고하도록 하자.
이제 동영상 플레이어를 만들어 보자.
가장 먼저 메인윈도우부터 정의하자.
import sys
from PyQt5.QtWidgets import *
app = QApplication(sys.argv)
screen = app.primaryScreen()
size = screen.size()
width = size.width()
height = size.height()
class MyApp(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Video Player')
self.setGeometry(width // 10, height // 10, width // 5 * 4, height // 5 * 4)
self.show()
ex = MyApp()
sys.exit(app.exec_())

창이 하나 만들어졌다.
setWindowTitle 함수를 통해 프로그램 이름을 지정할 수 있다.
PyQt5 라이브러리의 QApplication 클래스를 통해 화면의 크기와 높이를 가져올 수 있다.
setGeometry 함수를 통해 x, y, w, h의 값을 설정해 주었다.
이제 위젯을 정의하자.
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
app = QApplication(sys.argv)
screen = app.primaryScreen()
size = screen.size()
width = size.width()
height = size.height()
class MyApp(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Video Player')
self.setGeometry(width // 10, height // 10, width // 5 * 4, height // 5 * 4)
cent_widget = CentWidget()
self.setCentralWidget(cent_widget)
self.show()
class CentWidget(QWidget):
def __init__(self):
super().__init__()
base = QPixmap('base.JPG')
lbl_img = QLabel()
lbl_img.setScaledContents(True)
lbl_img.setPixmap(base)
btn_pp = QPushButton('재생/정지')
grid = QGridLayout()
grid.addWidget(lbl_img, 0, 0, 19, 20)
grid.addWidget(btn_pp, 19, 0, 1, 5)
self.setLayout(grid)
ex = MyApp()
sys.exit(app.exec_())
CentWidget이라는 클래스로 위젯을 정의했다.
위젯에는 재생/정지 버튼과 티스토리 로고를 배치했다.
MyApp이라는 메인윈도우가 CentWidget 위젯을 사용해야 하므로 상속시켰다.
문제는 로고가 너무 작다.
로고를 크기에 맞게 배치하기 위해 다음 명령어를 사용해보자.
lbl_img.setScaledContents(True)
이제 크기를 변환해도 잘 작동한다!
다음 포스팅에서는 CV2 라이브러리를 활용해서 쓰레딩을 통해 동영상을 불러와보자.
'PyQt5' 카테고리의 다른 글
QSplitter 다루기 (0) | 2022.05.16 |
---|---|
사진에 바운딩박스 그리기 (0) | 2022.03.28 |
PyQt5를 이용하여 동영상 플레이어를 만들어보자(4) (0) | 2022.01.10 |
PyQt5를 이용하여 동영상 플레이어를 만들어보자(3) (0) | 2022.01.08 |
PyQt5를 이용하여 동영상 플레이어를 만들어보자(2) (0) | 2022.01.08 |
댓글