7월, 2020의 게시물 표시

PyQt5 기반 동영상 플레이어앱 만들기

이미지
비디오 재생 예전 게시물 중 음악파일 플레이어 를 파이썬으로 만든 예제가 있습니다. Qt 의 QMediaPlayer , QMediaPlaylist class를 이용해 mp3 등 음악 파일을 재생하는 원리입니다. 아래와 같이 사용합니다. from PyQt5.QtWidgets import QApplication from PyQt5.QtMultimedia import QMediaPlaylist, QMediaPlayer, QMediaContent from PyQt5.QtCore import QUrl import sys if __name__ == '__main__': app = QApplication(sys.argv) playlist = QMediaPlaylist() url = QUrl.fromLocalFile('test.mp3') playlist.addMedia(QMediaContent(url)) player = QMediaPlayer() player.setPlaylist(playlist) player.play() sys.exit(app.exec_()) PlayList를 생성해 파일을 추가하고, Player의 play() 함수를 수행하면 음악이 재생됩니다. 이번에는 동영상 플레이어 (Video Player) 를 Python + PyQt5 를 이용해 만들어 보았습니다. 기본 원리는 위와 같지만 비디오을 출력할 위젯 (QVideoWidget)만 설정 하면 동영상이 재생되는 원리입니다. [동영상 재생 프로그램] 주요기능 재생 리스트에 동영상 파일 추가, 삭제 (*.avi. *.mp4, *.mkv, *.mp...

Qt좌표계 이해 및 회전알고리즘

이미지
오늘은 Python + PyQt5 를 이용, 사각형의 회전 을 구현해 봤습니다. [사각형 회전] 우선, 어떤 도형(원, 삼각형, 사각형 등)을 회전하는 방법 을 생각하면 가장 먼저 드는 생각은 아래와 같습니다. 도형 중심 좌표 를 기준으로 도형의 끝점들을 찾아 원하는 각도로 cos, sin 함수를 이용, 회전된 좌표를 찾아낸 후 다시 좌표를 직선으로 이어 그리는 방식 그런데 회전시켜야 할 도형이 많다거나, 글자 등도 회전시켜야 하는 경우는 모든 대상마다 적용해야 하므로 코드가 지저분해지기 쉽습니다. 하지만 Qt의 QPainter class를 이용하면 간편하게 좌표 회전이 가능합니다. QPainter의 rotate() 함수 를 이용하면, 내부적으로 행렬 연산(Matrix) 을 통해 Coordinate System 자체를 회전시킵니다. 회전시킨 후 그림을 그리면 회전된 모습으로 그림이 그려지는 방식입니다. [Qt 좌표변환, 출처 : Qt 홈페이지] 위 그림을 참조하면 회전, 이동, 확대, 축소 까지 모두 가능한 것을 확인해 볼 수 있습니다. 그럼 소스 코드를 살펴보겠습니다. import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True) class CWidget(QWidget): def __init_...

이 블로그의 인기 게시물

Qt Designer 설치하기

PyQt5 기반 동영상 플레이어앱 만들기