그래픽 & 멀티미디어
|
자, 이번에는 QT 3.x.x 버전의 QT 디자이너에 대해서 알아 보도록 하겠습니다. 조금 글이 늦었지요. 그림으로는 설명이 어려울 듯해서 동영상을 찰영했는데, 오늘 따라 영상은 녹화가 되는데 음성이 녹음되지 않아서 이렇게 늦고 말았습니다. ^^
겨우 녹음이 되다 보니, 그렇지 않아도 급한 성격인데 조금 긴장했나봐요. 겨우 작업해 놓고 보니, 말투가 왜 이모양인지 모르겠습니다. 완전히 전화 상담원 같군요. ㅡㅡ; 그렇지 않아도 듣기 불편한 목소리인데 듣기가 역겹...^^...불편합니다. 양해하시고 봐주면 감사하겠습니다. ^^;
QT 3.x.x 디자이너
QT 3.x.x 디자이너를 앞으로 QT 3 디자이너라고 말씀 드리겠습니다. QT 3 디자이너는 이전 QTopia 2.1.1 설치기를 참고하셔서 직접 설치하셔도 좋고, 리눅스를 설치하실 때 QT 디자이너를 선택하시거나, yum, sudo같은 설치 명령으로 설치하셔도 좋습니다.
리눅스를 설치하실 때 QT 3.x.x를 설치하셨거나 yum, sudo, rpm으로 설치하셨다면 designer로 실행하시면 됩니다.
]# designer &(엔터)
QTopia 2.1.1 설치기에 따라 QT 3를 설치하셨다면 아래의 명령에 따라 디자이너를 실행하십시오.
]# source /qt/qtx-3.env ]# designer &(엔터)
QT3를 보시면 QT 2 디자이너보다 비교되지 않을 정도로 매우 예뻐졌고, 위젯들도 많아 졌습니다.
Qt Designer - New/Open
제일 먼저 project 파일부터 만듭니다. 이전에는 폼과 프로그램 파일을 만든 후에 qmake에서 project 옵션을 주고 프로젝트 파일을 생성했지만 QT Designer에서는 프로젝트 파일 생성 뿐만 아니라 관리까지 해 주므로 매우 편리합니다. Qt-Designer - New/Open에서 C++ Project를 선택합니다.
적당한 곳에 프로젝트 파일을 저장합니다.
이제 폼을 생성하겠습니다. Qt-Designer - New/Open에서 Dialog를 선택합니다.
디자이너를 사용하는 기본 사용 방법은 동영상에서 설명을 드리기 때문에 작업 내용 모두를 그림으로 캡쳐하지는 않겠습니다. 대신에 기억해 두셔야할 중요 부분을 차례로 올리겠습니다.
속성 창 >> Name...
이렇게 폼을 만들었을 때에는 제일 먼저 폼의 이름부터 지정합니다. 속성 창의 Name에 지정하는 이름은 폼의 클래스 이름이 됩니다. 어차피 디자이너를 이용하여 만들어지는 폼의 모습은 그래픽 정보일 뿐입니다. 실제 프로그램으로 만들기 위해서는 이 그래픽 정보를 가지고 C 소스를 만들어야 합니다. 그러므로 만들려는 폼의 이름, 즉 클래스 이름은 중요합니다.
나중에 make를 수행하면 디자인 파일에서 소스코드가 만들어 지는데, 그 소스 코드의 헤더 파일 내용을 보시면 이해가 쉽습니다.
class frmMain : public QDialog { : };
라벨과 버튼 추가 배치
폼을 디자인해 보겠습니다.
사용자 슬롯 생성
Object Explorer에서 Members 탭을 틀릭하고 슬롯 아이템에서 적당한 계정 권한에서 오른쪽 마우스 버튼을 클릭합니다.
오른쪽 마우스 버튼 메뉴에서 "New"를 선택합니다.
슬롯 함수 추가
자, "New"메뉴를 선택하면 만들려는 슬롯에 대한 정보를 입력하는 윈도우 창이 생성되고 입력을 완료하면 새로운 슬롯이 등록됩니다.
슬롯 함수 완성
슬롯 이름을 클릭하면 슬롯 함수를 완성할 수 있는 에디터가 출력됩니다. 이 에디터를 처음 보았을 때 얼마나 반가웠는지 모릅니다. ^^
이렇게 슬롯 이름을 클릭하면 에디터가 출력됩니다.
정상적으로 슬롯 함수가 생성되었다면 필요한 코드를 입력합니다.
버튼에 슬롯 지정
버튼에 새로 생성한 슬롯을 지정합니다.
이렇게 슬롯을 지정하는 윈도우에 사용자 슬롯을 선택할 수 있습니다. 참~ 잘 만들었네요. ^^
폼 디자인 파일 저장
디자인 작업이 끝났으므로 파일로 저장합니다.
프로젝트 빌드
디자인 파일도 저장했으므로 이제 프로젝트 파일을 빌드해서 최종 실행 파일을 만들면 되겠습니다. 그러나 C에서 빠질 수 없는 main()함수가 없습니다. 앞서 QT 2.x.x 디자이너 사용에서 처럼 main()함수를 만들어 주어야 하는데, QT 3.x.x에는 이미 이 기능을 갖추고 있습니다.
- File 메뉴 >> New를 선택하고 C++ Main File을 선택합니다.
- 메인 폼을 선택 윈도우에서 frmMain을 선택합니다.
- frmMain을 선택하면 main.cpp가 생성됩니다.
이제 main()함수도 만들었으므로 실행 파일을 만드는 과정만 남았습니다.
]# qmake qmake로 Makefile을 만듭니다. ]# make Makefile을 만들었으므로 make로 실행파일을 만듭니다. ]# ./실행파일이름 실행 파일을 실행합니다. 이후로 디자인이 바뀌거나 프로그램 내용이 바뀌면 make만 실행하면 됩니다. 물론 폼이 추가되거나 파일이 추가되면 qmake로 다시 Makefile을 만들어 주어합니다.
이후로는 디자인이 바뀌면
폼의 이름
다시 한번 말씀드립니다만 폼의 속성의 이름은 클래스 이름이 됩니다. 즉, 이 클래스를 이용하면 같은 디자인의 폼을 몇 개라도 생성하여 실행할 수 있습니다. 아래는 그 예를 보여 줍니다.
#include <qapplication.h> #include "frmMain.h" int main( int argc, char **argv) { QApplication app( argc, argv); frmMain frm; frmMain sub; <-- 같은 클래스 또 하나 생성 app.setMainWidget( &frm); frm.show(); <-- 같은 폼을 2개 출력 sub.show(); <-- 같은 폼을 2개 출력 return app.exec(); }
실행하면 아래와 같이 윈도우가 2개 출력 됩니다.
결언
어떻습니까? 이전 QT 2 버전의 디자이너 보다 훨씬 사용하기 편해 졌지 않나요? 이제는 QT 4 Designer가 나왔던데 얼마나 좋아 졌는지 궁금하군요.
저도 QT를 학습하면서 알게된 지식을 올리다 보니 많이 모자릅니다. 저나 다른 초보분들을 위해 QT에 대한 좋은 말씀이나 학습 자료를 올려 주시면 감사하겠습니다.
전~혀 듣기 실치 않아요 ㅋㅋㅋ