« Previous : 1 : 2 : 3 : 4 : 5 : ... 25 : Next »

CMPlayer 0.4.0 릴리즈

많은 분들이 기다리시던(?) CMPlayer 0.4.0을 릴리즈하였습니다.

이전에 재생엔진으로 mplayer와 xine을 지원하던 것을 포기하고,
유지보수문제로 GStreamer만을 이용하도록하였습니다.

이전과 비교하여 다음과 같은 변경사항이 있습니다.

* GStreamer로 통합됨으로써, 모든 플러그인은 삭제되고 실행 파일 하나만으로 작동합니다.
* OSD 알파 블렌딩이 가능해짐으로서 자막을 포함한 OSD 품질이 향상되었습니다.
* 자막 표시 기능이 추가되었습니다. 도구 상자의 자막탭에서 이용할 수 있습니다.
* 재생/일시정지 전환시에 문제가 많았기 때문에 '항상 위에 표시'기능이 삭제되었습니다.
* 키프레임과 무관하게 정확한 프레임으로 탐색을 수행합니다. 이로 구간반복의 정확도가 향상되었습니다.
* 다이얼로그를 이용하는 고급 구간 반복 기능이 삭제되었습니다. 혹시 필요하다고 요청이 있으면 다음 버전에서 다시 넣겠습니다.
* 소리 평준화(volume normalization)과 비디오의 소프트웨어 처리(software equalizer)는 더이상 환경설정에 존재하지 않습니다.
재생중에 메뉴에서 켜고 끌수 있습니다.
* 일부 필요없다고 생각되는 옵션들이 삭제되었습니다.

위 변경사항의 대부분은 GStreamer로 이행한 덕분에 가능해진 것들입니다.
UI는 거의 바뀌지 않았지만 재생엔진 부분은 처음부터 다시 만들었기 때문에, 이외에도 자잘한 변경점도 있고,
제가 로그를 잘 안남기다보니 어떤 기능이 이번버전에 새로 추가된건지 잘 기억이 안나기도 합니다-_-;
새로 짜면서 잊어버리고 구현하지 않은 기능도 있습니다.
릴리즈하고서야 스냅샷이 빠진걸 알았습니다. 다음에 다시 넣겠습니다.
이외에도 기능추가나 복귀 요청이 있으시면 주저마시고 말씀해주시기 바랍니다.
또한 동시에 자잘한 버그도 대량생산되었을 가능성이 높습니다-_-;
다음 페이지에 다운로드할 수 있습니다.
http://kldp.net/projects/cmplayer/download

CMPlayer 소개

CMPlayer는 엔드유저를 위한 사용하기 편리한 멀티미디어 플레이어입니다.
특히 한국에서 자주 문제가되는 자막처리에 많은 신경을 썼습니다.
CMPlayer로는 다음과 같은 것들이 가능합니다.

* 파일/URL/DVD 재생 지원
* 파일명으로부터 재생목록 자동 생성
* DVD 메뉴 지원
* 화면 크기/종횡비 설정 및 잘라내기 지원
* 재생 속도 변경 가능
* 구간 반복 기능
* Sami(smi), SubRip(srt), MicroDVD, TMPlayer 자막 포맷 지원
* 통합 자막지원
* 포맷에 상관없이 복수의 자막들의 동시 표시 가능
* 자막 인코딩 자동 탐지(libchardet 이용)
* SAMI포맷의 컬러 자막 지원
* 현재 표시되고 있는 자막 리스트 및 자동 스크롤 지원
* 복수의 오디오 스트림을 포함한 미디어 지원
* 소리 평준화(volume normalization) 지원
* 밝기/채도/명도/대비 설정 지원
* 최대 999개의 재생이력 보존
* 재생이력에 포함된 이전에 중단된 파일을 중단된 곳부터 재생 가능
* 즐겨찾기 지원
* 단일 어플리케이션 지원
* 시스템 트레이 아이콘 지원
* 최소화 및 복귀시 자동 일시정지 및 자동 재생 시작
* 재생중 화면 보호기 끄기
* 상하단 여백 존재시 자동으로 자막 출력위치가 조절됨
* 전 메뉴 단축키 설정 가능
* 마우스 조작으로 동작 설정 가능

이외에도 여러가지 편리한 기능이 포함되어있습니다.

버그 및 기능 개선에 대해서는 다음 사이트에 올려주시기 바랍니다.
CMPlayer 프로젝트 페이지: http://kldp.net/projects/cmplayer
CMPlayer 저자 블로그: http://xylosper.net

Posted by xylosper

2010/06/25 17:04 2010/06/25 17:04
Response
No Trackback , 2 Comments
RSS :
http://xylosper.net/rss/response/139

Trackback URL : http://xylosper.net/trackback/139

수업 시작

오늘부터 대학원 수업이 시작됩니다.
4학년 1년 동안 거의 수업이 없는 상태였는데, 당분간 적응 하느라 고생좀 할 듯합니다.

당장 한시간 후에 수업이 있기 때문에, 슬슬 준비해야 합니다.
1년만에 듣는 수업이라 귀찮기도 하면서 기대도 됩니다.
아무튼 빨리 준비하지 않으면 지각하겠습니다...

Posted by xylosper

2010/04/08 09:21 2010/04/08 09:21
,
Response
No Trackback , No Comment
RSS :
http://xylosper.net/rss/response/138

Trackback URL : http://xylosper.net/trackback/138

トイレの神様 - 할머니의 사랑

너무나도... 너무나도 가슴을 아프게 하는 노래가 있어서 소개합니다.
植村花菜라는 일본 가수의 トイレの神様라는 노래입니다.
노래의 내용은, 어릴적에 할머니와 같이 살던 소녀가, 나이가 들면서 할머니와 티격거리기도 하면서 집을 나와 혼자 살다가, 할머니가 입원 하게 되자 돌아가보지만, 다음달 할머니는 영면하신다는, 지극히 진부하기 짝이 없는 내용입니다.

가사 전문 보기


하지만, '할머니'라는 존재에 특별한 감정을 가진 이들이라면, 한번쯤은 울음이 터져 나올수 밖에 없습니다.

노래의 제목인 トイレの神様자체는, 그대로 번역하면 "화장실의 신'이되버려서 뭔가 개그노래란 느낌이 들지만, 그 의미는 다음 대목에서 알수 있습니다.



トイレには それはそれはキレイな

女神様がいるんやで

だから毎日 キレイにしたら 女神様みたいに

べっぴんさんになれるんやで


화장실에는, 정말로 정말로 아름다운

여신님이 있어서

그러니까 매일 깨끗하게 청소하면 여신님처럼

예쁜 미녀가 될수 있단다



이것은, 할머니를 도와 집안일을 하는 소녀가 화장실청소만은 꺼려하자, 할머니가 소녀에게 해준 말입니다.

그후로 소녀는 화장실의 여신님처럼 미녀가 되기 위해서 화장실 청소도 열심히 합니다.

저뿐만이 아니라고 생각하지만, 저는 어렸을 때 생라면을 부셔서 먹는 걸 좋아했습니다.

그럴 때마다, 할머니께서는 '생라면을 먹으면 벌레가 생긴다'라고 하셨고,

할머니 몰래 먹으면서 벌레 생기면 어떡하지 라고 걱정하던게 기억납니다.

벌레와 여신을 비교한다는게 이상하겠지만, 노래속의 화장실의 여신님은 저에게 생라면 벌레를 떠오르게 합니다.



少し大人になった私は おばあちゃんとぶつかった

家族ともうまくやれなくて 居場所がなくなった

休みの日も家に帰らず 彼氏と遊んだりした

五目並べも鴨なんばも 二人の間から消えてった


どうしてだろう 人は人を傷付け

大切なものをなくしてく

いつも味方をしてくれてた おばあちゃん残して

ひとりきり 家離れた


조금만 어른이 된 나는 할머니와 자주 티격댔다

가족과 사이도 나뻐지고 내가 있을 곳도 없어졌다

휴일에도 집에 돌아가지 않고 남자친구와 놀곤했다

오목도, 카모남바도 둘 사이에서 없어져 갔다


어째서 일까 사람은 다른 사람을 상처입히고

소중한 것들 잃어버려간다

언제나 내편이 되어준 할머니를 남겨두고

홀로 집을 나왔다



누구나 나이가 들면서 부모님과 티격태격댑니다.

아마도 이 소녀에게도 그 시기가 찾아왔겠지요.

소녀는 그시기를 잘 넘기지 못하고, 가족 뿐만 아니라 할머니와도 멀어지게 됩니다.

오목은 어렸을 때 할머니와 자주 하던 놀이이고,

카모남바(일본요리 이름)는 어렸을 때 할머니와 자주 먹던 요리입니다.

할머니의 손자에 대한 애정은, 부모님의 자식에 대한 애정과는 또다른 각별한 것이 있다고 생각합니다.

당신들은 자수성가한 자식들이 있음에도 불구하고, 손자들에게 아낌없이 애정을 붓습니다.

부모님의 자식에 대한 애정은 무조건이라고 하지만, 저는 할머니의 손자에 대한 애정이야 말로 무조건이고 순수한 것이라고 생각합니다.

부모님은 종종 여럿의 형제중에 편애하는 자식이 있곤 합니다.

물론 이 편애는, '좋다', '싫다'가 아니라, '매우 좋다', '좋다', '덜 좋다'와 같은, 약간의 정도의 차이일 뿐입니다.

이 작은 차이에도 자식들은 민감하게 반응하고, 형제들과 비교당하기라도 하면 강하게 반발하곤 합니다.

하지만, 할머니의 손자에 대한 애정에는, 어떠한 조건도 존재하지 않습니다.

저는 지금 외국에 나와있는데, 제가 방학에 잠깐 귀국하면, 아버지께서 여러가지 저에게 맞춰서 맛있는 것을 준비해줍니다.

하지만 제 형은 밤 늦게까지 근무하는 경우가 많아, 그것들을 같이 먹지 못하는 경우가 많습니다.

그래서 아버지께서는, 평소에도 자주 먹을 수 있으니, 라는 생각에 아예 형의 분은 준비하지 않는 경우가 있습니다.

그럴때 할머니께서는 아버지께, '둘다 같은 자식이지' 라고 하며 형의 분도 준비하도록 하곤합니다.


아무리 큰 잘못을 해도 언제나 할머니는 손자편입니다.

부모님께 혼이라도 났을 때는 할머니의 품에 안기고 할머니께서는 다정하게 달래어 주십니다.

하지만 종종 어린 손자는 할머니께서 오래전부터 해오시던 것들을 이해하지 못하고,

할머니께 투정을 부리고, 차갑게 대하기도 합니다.

그럴때마나 할머니께서는 쓸쓸한 표정을 지으시지만, 손자는 그런 것을 읽어내지 못합니다.

그리고 또다시 아쉬워 지면 할머니의 품을 찾습니다.

언제나... 언제나... 다정한 할머니는 거기에 계셨으니까요.



上京して2年が過ぎて

おばあちゃんが入院した

痩せて 細くなってしまった

おばあちゃんに会いに行った


「おばあちゃん、ただいまー!」ってわざと

昔みたいに言ってみたけど ちょっと話しただけだったのに

「もう帰りー。」って 病室を出された


次の日の朝 おばあちゃんは 静かに眠りについた

まるで まるで 私が来るのを 待っていてくれたように

ちゃんと育ててくれたのに

恩返しもしてないのに

いい孫じゃなかったのに

こんな私を待っててくれたんやね


상경하고 2년이 지나

할머니가 입원하였다

마르고 야위어 버린

할머니를 만나러 갔다


"할머니, 다녀왔습니다!"라고 일부러

예전처럼 말걸어 보지만, 조금 이야기 했을 뿐인데

"그만 돌아가야지"라고 나를 내보내셨다


다음날 아침, 할머니는 조용히 잠드셨다

마치... 마치... 내가 오는 것을 기다려 준것 처럼

힘들게 키워주었는데

효도도 못했는데

착한 손자도 아니었는데

이런 나를 기다려 준거구나


최근 아버지로부터 할머니가 요즘 많이 편찮으시다고 연락이 왔습니다.

무소식이 희소식이라고 하는데, 요즘은 집에서 전화가 올 때마다 가슴이 뜁니다.

이런때에, TV에서 흘러나오는 이 노래를 듣고, 절로 눈물이 흘러나오더군요.

이 노래를 몇번을 들어도, 그리고 이글을 쓰기 위해서 가사를 다시 읽어보기만 해도,

눈물이 절로 흘러나옵니다.


언제까지나 그곳에 계실 것 같았습니다.

언제나 그곳에 가면 웃으며 반겨주실것 같습니다.

하지만 알고 있었습니다.

언젠가는... 언젠가는... 그날이 올것이라고...

아니, 전혀 알지 못했습니다.

그저 언젠가는 올지도 몰라... 그냥 그렇게 생각하고 있었습니다.

투정 부렸을 때의 쓸쓸한 그분의 표정이 떠오릅니다.

그저 눈물이 쏟아질 뿐입니다...


Posted by xylosper

2010/03/30 20:16 2010/03/30 20:16
Response
No Trackback , No Comment
RSS :
http://xylosper.net/rss/response/137

Trackback URL : http://xylosper.net/trackback/137

파동을 나타내는 식

고등학생 떄 살짝 물리 공부좀 많이 했다 하면 '파동 방정식'이라는 걸 들어보았을 것이다.
사실, 일반적으로 '파동 방정식'이라고 하면 다음과 같은 2계 편미분 방정식을 가리킨다.
\[\frac{\partial^2 }{\partial t^2} u(x,t)=c^2 \frac{\partial^2 }{\partial x^2}u(x,t)\]
고등학교의 파동에서는 파동방정식이란 이름으로 다음과 같은 식이 소개된다.
\[u(x,y)=A\sin(kx-\omega t +\phi)\]
이식은 그 위에 적은 파동방정식의 기본해이다.
이것이 해가 된다는 것은 직접 대입해보면 간단하게 확인 할 수 있지만, 진동을 사인파로 나타냈을 때, 그것을 평행 이동시킴으로써 간단히 이 식을 도출하는 것도 가능하다.

우선 \$t=0\$일 때, 각 위치 \$x\$에서의 진동의 변위가 다음과 같이 주어졌다고 하자.
\[u(x)=A\sin\left(\frac{2\pi}{\lambda}x+\phi\right)\]
여기서 \$\lambda\$는 파동의 파장을 나타내고, \$\phi\$는 초기위상을 나타낸다.
파동은 진동이 시간에 따라서 전파된다.
파동의 전파 속도를 \$v\$라고 하면, 시간이 \$t\$만큼 흘렀을 때 이 파동은 \$vt\$만큼 전파된다.
따라서, 시간\$t\$후의 파동은, 처음의 파동을 진행방향으로 \$vt\$만큼 평행이동시키면 된다.
만약 파동이 \$+x\$방향으로 전파된다면, \$vt\$만큼 평행이동 시킨 식은
\[u(x,t)=u(x-vt)=A\sin\left[\frac{2\pi}{\lambda}(x-vt)+\phi\right]\]
가 될 것이다.
이것으로 '고등학교의  파동방정식'이 유도되었다.
처음에 제시한 식과 비교하면 사인 안의 모양이 전혀 다르게 보인다.
모양을 같게 하는 건 단순히 몇가지 변수를 새로 넣기만 하면된다.
우선, 이 파동의 진동 주기를 \$T\$라고 하면, \$v=\lambda/T\$이므로,
\[u(x,t)=A\sin\left[\frac{2\pi}{\lambda}\left(x-\frac{\lambda}{T}t\right)+\phi\right]\]
라고 바꿔 쓸수 있다.
여기서, 다음 두가지 변수를 도입한다.
\[k=\frac{2\pi}{\lambda},\quad \omega=\frac{2\pi}{T}\]
식의 사인안의 괄호를 전개하여 위 두 변수를 대입하면
\[u(x,y)=A\sin(kx-\omega t +\phi)\]
라는, 원하던 식이 나오게 된다.

마지막에 도입한 두 변수는 각각 '파수(혹은 전파수)', '각진동수(혹은 각주파수)'라고 불리는 물리량이다.
사실 고등학교의 물리에서는 이 두 물리량이 가지는 의미는 그리 크지 않다.
그나마 각진동수정도는 원운동의 각속도와 연관지어 생각할 수 있지만, 파수는 특히나 1차원 문제에서는 별 의미가 없어서 보이고, 단순히 식을 간단하게 하기 위한 물리량으로 보일 것이다.
파수는 사실 파장보다 더 많은 정보를 포함하는 물리량으로, 대학물리를 배우게 되면 파수가 가지는 의미를 알게 될 것이다.

Posted by xylosper

2009/10/19 01:26 2009/10/19 01:26
Response
No Trackback , No Comment
RSS :
http://xylosper.net/rss/response/136

Trackback URL : http://xylosper.net/trackback/136

디자이너를 이용하면 메인윈도우도 간단히 만들수 있습니다.
특히 많은 메뉴들과 툴바아이콘들을 배치해야 할 경우 보면서 할수있기에 편리합니다.

디자이너로 메인윈도우를 만들려면, 디자이너를 실행시키고 메인윈도우를 선택합니다.

메인 윈도우 만들기


메인윈도우를 생성하고 나면 메뉴바 위치에 Type Here 라는 문구가 보입니다. 여기서부터 메뉴와 액션들을 추가해 갈수 있습니다.

참고로 여기서부터는 메뉴와 각종 텍스트는 영어로 작성하도록 하겠습니다.
이유는 기본 언어를 영어로 하고, 번역판으로 한국어를 제공하는 방식으로 하기 위해서 입니다.
물론 기본 언어를 한국어로 해도 되고, 국내이용자만을 대상으로 하는 경우라면 그걸로도 충분 할 것입니다.
이에 따른 차이는 나중에 또 별도로 설명하겠습니다.

한번 파일 메뉴와 새 파일 액션을 추가해보세요. Type Here 라는 곳을 더블 클릭하여 &File 이라고 입력한 후 엔터를 누르면 파일 메뉴가 생성됩니다.
이상태에서 파일 메뉴를 클릭하면 메뉴창이 열리고 그 아래에는 또 Type Here 이라는 문구와, Add Seperator 라는 문구가 보입니다.
Type Here를 더블 클릭하고 메뉴를 생성할 때와 같은 요령으로 &New File 이라고 입력하면 새 파일 액션이 생성됩니다.
그런데 새 파일 액션의 오랜쪽에 + 같은 모양의 아이콘이 보일 것입니다.
이 아이콘은 액션을 메뉴로 확장하는 아이콘으로, 하위 메뉴를 만들 때 이용합니다.

메뉴와 액션의 문자열을 고치고 싶을 때는 메뉴상에서 더블 클릭하여 고치면되며, 그외의 속성들을 수정할 때는, 다른 위젯들과 동일하게 Object Inspector와 Property Editor를 이용하여 수정할 수 있습니다.
또한, 액션의 경우 액션만을 위한 Action Editor 라는 것이 제공됩니다.
Action Editor는 디자이너의 기본 레이아웃이라면 오른쪽 하단의 Signal/Slot Editor와 겹쳐져 있으니, Action Editor 탭을 눌러서 표시할 수 있습니다.

Action Editor

Action Editor를 보면 방금 만든 새 파일 액션이 보입니다.
한번 더블 클릭해보면, Edit Action이라는 다이얼로그가 나타납니다.
이 다이얼로그는 Property Editor에서 특히 액션의 경우 자주 편집되는 부분만 모아 놓은 것이라고 생각하면 됩니다.
ToolTip외에는 별도로 항목에 대한 설명은 필요 없어 보입니다.

우선 아이콘을 지정해봅시다.
이전과 마찬가지로 로컬 파일을이용할 수 도 있고, Qt의 리소스를 이용할 수도 있습니다.
Qt의 리소스를 이용하는 경우, 디자이너를 이용하여 리소스를 쉽게 관리할 수 있습니다.
여기서는 Qt 리소스를 이용하는 법도 배울 겸, 리소스를 이용하여 아이콘을 지정해보겠습니다.
Icon 항목의 오른쪽의 ... 버튼을 클릭해보면 Select Resource 다이얼로그가 나타납니다.
하지만 현재 불러온 리소스 파일이 없기 때문에 아무것도 선택할 수 없습니다.
여기서 상단의 연필 모양 버튼을 클릭하면 Edit Resources 다이얼로그가 나타납니다.
이 창의 하단을 보면 왼쪽에 두개의 버튼이 활성화되있는데요, 왼쪽은 새로운 리소스 파일(.qrc)파일을 만드는 버튼이고, 오른쪽은 기존의 리소스 파일을 여는 버튼입니다.

이전에 만들었던 리소스 파일을 열어 보면 이전에 넣어 둔 아이콘 파일이 하나 표시될 것입니다.
여기서는 연습 삼아 새로운 리소스 파일을 만들어 보겠습니다.
열린 리소스 파일을, 왼쪽의 X 버튼으로 닫고, 새 리소스 파일을 만듭니다.
여기서는 이전에 만든 resources.qrc 파일에 덮어 씌우겠씁니다.
이제 오른쪽 버튼들이 활성화 됩니다.
우선 + 버튼을 눌러서 prefix를 추가합니다.
prefix는 리소스에 접근 할때의 최상위 경로로 보통은 / 로 하면됩니다.
그후 오른쪽에서 두번째 버튼으로 리소스를 엽니다.
이전에 첨부한 소스 파일을 보면, img 디렉토리 안에 두개의 이미지 파일이 있습니다.
두개 모두 선택하여 추가 한후 OK 버튼을 누르면 리소스 파일이 편집되어 저장됩니다.
참고로 리소스를 삭제할 때는 제일 오른쪽의 - 버튼을 이용하면 됩니다.
또, 리소스는 Action Editor의 오른쪽 탭에 있는 Resource Browser를 통해서도 열람/편집이 가능합니다.

다시 Select Resource 창으로 돌아왔습니다,
이제 방금 추가한 두개의 이미지를 선택할 수 있습니다.
적당한 이미지를 선택한 후, OK를 누르면 아이콘이 선택된 것을 확인 할 수 있습니다.

그외에 Object name은 원하는 이름으로(저는 newFileAction)으로 입력하시고, Shortcut으로 단축키를지정합니다(저는 Ctrl+N).
단축키는 오른쪽의 화살표 버튼을 클릭한후 실제로 키보드로 원하는 단축키를 누르면 자동으로 입력됩니다.

이것으로 액션편집이 끝났습니다.
이번에는 툴바를 만들어 보겠습니다.
메인 윈도우의 적당히 가운데에서 오른쪽 클릭을 해보면 Add Tool Bar라는 메뉴가 제일 상단에 나타납니다.
이 메뉴를 선택하면 메뉴바 밑에 가느다란 툴바가 추가 됩니다.
툴바가 가느다란 이유는 아직 아무것도 안들어 있기 때문입니다.
여기에 방금 만든 새파일 메뉴를 추가해보겠습니다.
Action Editor에서 추가할 액션을 드래그 하여 툴바에 드랍하면 됩니다.

마지막으로 메인 윈도우의 central widget을 지정해봅시다.
정확히 말하면, 디자이너에서 만든 메인윈도우의 경우 central widget은 무조건 평범한 QWidget이 들어가게됩니다.
그대신 디자이너에서는 그 위젯 안에 다른 위젯을 넣어서 표시할 수가 있습니다.
우리는 텍스트 에디터를 만들고 있으므로 왼쪽에서 Text Edit 위젯을 가져오서 메인 윈도우의 가운데에 놓고, Object Name을 edit로 지정합니다.
그후 방금 내려놓은 Text Edit 외의 적당히 다른 부분을 클릭하면 상단의 레이아웃 툴바가 활성화됩니다.
이상태에서 적당한 레이아웃(여기서는 다른 위젯을 배치하지는 않으므로 아무거나 상관없습니다).
여기서 레이아웃을 지정해야 하는 이유는 자동으로 크기가 조절되도록 하기 위해서 입니다.
저는 Lay Out Horizontally 를 선택하였습니다.
그런데 이상태로는 Text Edit 상하좌우로 여백이 들어가 버립니다.
이 여백은, 레이아웃을 넣은 위젯의 property에서 없앨 수가 있습니다.
Object Inspector에서 방금 레이아웃을 넣은 위젯(아마도 특별히 수정하지 않았으면 centralwidget이라고 되어있는 위젯)을 선택한 후, Property Editor의 가장 아래쪽을 보면 Layout 이라는 항목이 보일 것입니다.
여기서 LayoutLeftMargin, LayoutRightMargin, LayoutTopMargin, LayoutBottomMargin을 0으로 입력해주면 Text Edit 주변의 여백이 없어질 것입니다.

마지막으로 메인윈도우의 프로퍼티에서 윈도우 아이콘으로 리소스의 document-edit.png 파일을 선택해주고, 윈도우 타이틀도 적당히 적어줍시다(저는 Text Editor라고 해주었습니다).
이상태에서 Ctrl+R을 눌러 미리보기를 해봅시다.
겉모습만 보면 이전에 만든 texteditor 프로그램과 동일 할 것입니다.
이 상태에서 한번 툴바의 버튼에 마우스 커서를 올려놓고 가만히 둬보세요.
New File이라는 작은 텍스트가 표시됩니다.
이것이 아까 설명하지 않고 지나간 액션의 ToolTip입니다.
기본적으로는 액션의 Text가 그대로 표시되지만, ToolTip을 적당히 수정하여 원하는 텍스트가 표시되게 할 수도 있습니다.

여기서 작성한 파일을 mainwindow.ui라는 이름으로 저장한 후, 실제 코드에서 불러와서 적용합니다.
우선 새로운 ui파일을 만들었으므로 프로필 파일(texteditor.pro)에 다음과 같이 FORMS 항목을 추가해줍니다.

FORMS += mainwindow.ui

그리고 mainwindow.cpp를 대대적으로 수정해줍니다.

[code]#include "mainwindow.h"
#include "ui_mainwindow.h"

struct MainWindow::Data {
    Ui::MainWindow ui;
};

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), d(new Data) {
    d->ui.setupUi(this);
   
    connect(d->ui.newFileAction, SIGNAL(triggered()), this, SLOT(newFile()));
}

MainWindow::~MainWindow() {
    delete d;
}

void MainWindow::newFile() {
    d->ui.edit->clear();
}
[/code]
기본적인 요령은 이전에 설명한 폼 디자인 적용하기와 마찬가지로, setupUi() 함수를 호출 하여 줍니다.
이전 소스와 비교해보면 아시겠지만 메인 윈도우에서 메뉴바나 툴바를 생성하는 과정이 디자이너를 이용함으로서 생략되어 훨씬 간략한 소스가 되었습니다.
그리고 액션이나 Text Edit는 이제 Ui::MainWindow의 멤버이기 때문에 d->edit 등은 d->ui.edit 등으로 수정해주었습니다.

마지막으로 소스파일을첨부하고 디자이너를 이용한 메인윈도우 만들기를 마칩니다.
첨부한 소스파일에는, 이외에도 별도의 설명없이 간단히 구현할 수 있는 몇가지 메뉴가 더 추가되어있습니다.
소스코드를 보시고 이해가 안되시면 질문해주세요.

texteditor.tar.gz

예제 소스코드


Posted by xylosper

2009/09/08 09:42 2009/09/08 09:42
, , , , ,
Response
No Trackback , a comment
RSS :
http://xylosper.net/rss/response/134

Trackback URL : http://xylosper.net/trackback/134

« Previous : 1 : 2 : 3 : 4 : 5 : ... 25 : Next »

Notices

Archives

Calendar

«   2010/09   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

Site Stats

Total hits:
173475
Today:
20
Yesterday:
81