라벨이 qt인 게시물 표시

Qt 로 만들자: libvlc 를 이용한 간단한 동영상 재생기 LVPlayer

이미지
0. 들어가면서... 지난 번에 MPlayer 의 slave 모드를 이용해서 MPlayer 의 front-end 를 만드는 방법을 살펴보았다. 이번에는 오픈 소스 동영상 재생기 중에서 MPlayer 만큼이나 유명한 VLC Media Player 에 대해 알아보고자 한다. VLC Media Player 는 MPlayer 와 달리 라이브러리 형태로 모든 기능을 제공한다. 이를 libvlc 또는 VLC SDK 라고 한다. 이론적으로 libvlc 를 이용하면 VLC Media Player 와 동등한 기능을 가진 동영상 재생기를 만들 수 있다. 이 프로젝트에서는 지난 MPGui 프로젝트에서처럼 아주 간단한 기능만 구현해보도록 하자. 그리고 MPGui 처럼 Windows 7 을 기본 으로 하며, 사용된 VLC Media Player 버전은 2.2.4 이다. 그럼에도 불구하고, 다른 OS 나 플랫폼에서도 약간의 코드만 수정하면 충분히 작동할 것이다. 0.1. 사전 준비 libvlc 는 VLC Media Player 의 설치 프로그램에는 포함되어 있지 않다. 그렇다면 VLC Media Player 의 소스를 받아서 빌드해야 하느냐? 물론 그래도 되지만, 꼭 그럴 필요는 없다. 7-zip 배포본에는 sdk 디렉토리에 libvlc 가 포함되어 있다. 따라서 설치 프로그램이 아니라 7-zip 배포본 을 받으면 된다. 0.1.1. libvlc( VLC SDK ) 설치하기 7-zip 배포본은 다음 사이트에서 받을 수 있다. http://www.videolan.org/vlc/download-windows.html 이 때 [Download VLC] 를 누르지 말고 옆에 있는 아래쪽 화살표(🔻) 를 누르면 여러가지 형태의 배포본이 나온다. 그 중에서 [7-zip package] 를 선택하면 된다. 7-zip package 를 받았으면, 원하는 디렉토리에 풀면 된다. 0.1.2. PATH 환경 변수 바꾸기 VLC Media Player 는...

Qt 로 만들자: 간단한 MPlayer front-end MPGui

이미지
0. 들어가면서... 미루고 미루다가 이제서야 글을 쓴다. Qt 에 쓸 시간이 왜 이리도 안나는지. 이번에는 MPlayer front-end 이다. MPlayer 는 오픈소스 동영상 재생기 중에서 가장 유명한 재생기 중의 하나이다. 하지만, 명령행에서 실행되기 때문에 익숙하지 않으면 꽤 불편하다. 물론 GTK GUI 가 제공되기는 하지만, 많이 쓰이지는 않는듯 하다. 이보다는 오히려 SMPlayer 라는 front-end 가 더 유명하다. SMPlayer 라는 front-end 가 생길 수 있었던 이유는 MPlayer 에서 slave 모드라는 독특한 기능을 제공하기 때문이다. slave 모드는 MPlayer 가 독립적으로 실행되는 것이 아니라 다른 프로그램의 back-end 로 실행되는 것이다. 따라서 MPlayer 의 front-end 에서 MPlayer 의 다양한 기능을 조절할 수 있다. MPlayer 의 slave 모드를 이용해서 어떻게 MPlayer front-end 를 만들 수 있는지 간단히 알아보도록 하자. 이 과정에서 프로그램의 실행과 파이프 처리에 대해서 알 수 있을 것이다. 1. 요구사항 동영상을 Qt 창에서 재생한다 탐색을 지원한다 재생/정지를 지원한다 일시정지를 지원한다 위 기능들을 구현할 것이다. 다만, Windows 환경만을 고려한다. 다른 OS/Platform 에서도 작동할 수 있지만, OS/Platform 에 따라 추가 코드가 필요할 수 있다. Windows 용 MPlayer 실행파일은 다음 사이트에서 구한 것을 사용했다. http://mplayerwin.sourceforge.net/downloads.html 2. 코드 분석 2.1. 프로젝트 작성 프로젝트 이름: mpgui 메인 클래스 이름: MPGui 메인 클래스 유형: QMainWindow 2.2. 헤더 분석(mpgui.h) 2.2.1 헤더 파일 목록 Colored By Color Scripter ™ ...

Qt 로 만들자: 일기장

이미지
한동안 너무 쉬었다. 오랜만에 다시 만들어보는 프로그램은 <일기장> 이다. 프로그래밍을 연습할 때 주소록과 함께 한 번쯤 만들어보는 프로그램이다. 일기장과 주소록같은 프로그램들은 주로 데이터베이스를 공부하기 위한 소재들이다. 마찬가지로 이번에 <일기장> 을 만들어 보면서 Qt 에서 제공하는 데이터베이스 기능을 알아보도록 하자. 1. 요구사항 날짜, 제목, 내용 편집 지원 일기 불러오기/저장/삭제/수정 지원 2. 코드 분석 2.1 프로젝트 작성 프로젝트 이름: Diary 메인 클래스 이름: Diary 메인 클래스 유형: QMainWindow 2.1.1 프로젝트 파일 수정(Diary.pro) 이 프로그램은 SQL 데이터베이스를 쓰기 때문에 sql 모듈을 추가해주어야 한다. QT += core gui sql 2.2 헤더 분석(diary.h) 2.2.1 헤더 파일 목록 Colored By Color Scripter ™ 1 2 3 4 #include  <QMainWindow> #include  <QtWidgets> #include  <QtSql> 4 번째 줄: QtSql 은 SQL 데이터베이스를 쓰기 위해 필요한 헤더이다. 2.2.2 public 멤버 함수 Colored By Color Scripter ™ 1 2 3 4 5 6 7 8 9 10 11 12 13 /**  * @brief 일기장 메인 클래스  */ class  Diary :  public  QMainWindow {     Q_OBJECT public :     Diary(QWidget *parent...