블로그는 귀차니즘

First Sensation
  • 공지
  • 지역로그
  • 태그
  • 방명록

QT4 GUI 프로그래밍 - Linux GUI 라이브러리

Programming 2008/03/20 23:22 귀차니스트

저번에에 올렸던 포스팅에서는 KDevelop 를 설치하고 실행하여 간단하게 Hello World! 를 찍어보았죠. 그런데 실제로 최근 프로그램은 콘솔프로그램은 사용되지 않죠. 콘솔은 시스템의 서비스나, 서버같은 부분에서는 사용되지만 일반 엔드유저가 사용하는 프로그램에서는 사용되지 않습니다. 불편하기 때문이죠. 그럼 KDevelop에서는 어떻게 해야 할까요??
  먼저 KDevelop를 저번 콘솔 개발때 처럼 동일한 메뉴를 사용하여 실행시킵니다. 그런 뒤 새로 생성해야할 프로젝트에서 다른 프로젝트 종류를 선택하시면 되죠.

 C++ -> KDE -> Simple Designer based KDE Application

  선택해야할 프로젝트는 위와 같죠. 일단 생성하시면 프로젝트명.cpp 파일이 생성되면서 창을 표시하기 위한 코드가 자동생성됩니다.

 /***************************************************************************
 *   Copyright (C) 2008 by FilePointer,,,   *
 *   filepointer@filepointer-desktop   *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/
#include <kmainwindow.h>
#include <klocale.h>
#include "testhello.h"
#include "testhellowidget.h"
TestHello::TestHello()
    : KMainWindow( 0, "TestHello" )
{
    setCentralWidget( new TestHelloWidget( this ) );
}
TestHello::~TestHello()
{
}
#include "testhello.moc"

  이 코드를 가지고 Shift + F9 키를 눌러 컴파일을 해야 겠죠? 대충 코드를 봐도 짐작상 TestHelloWidgets 를 추가하는 것을 알 수 있죠. 그런데 컴파일을 정작하게 되면 다음과 같은 에러메시지가 발생합니다.

 configure: error: Can't find X libraries. Please check your installation and add the correct paths!

  X Libraries를 찾을 수 없다는 메시지네요. 아시다시피 리눅스는 GUI 환경이 X-Window 라는 것이므로 그에 해당하는 개발을 하기위해서는 X 라이브러리가 필요하게 되죠 그런데 프로젝트에서 찾지 못하니 에러가 발생하는 것입니다. 그럼 어떻게 해결을 해야 할까요?

 filepointer@filepointer-desktop:~$ sudo apt-get install kdelibs4-dev
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
Reading state information... 완료
다음 꾸러미를 더 설치할 것입니다:
  comerr-dev gettext-kde hspell kdesdk-scripts libacl1-dev libart-2.0-dev
  libarts1-dev libartsc0-dev libasound2-dev libaspell-dev libattr1-dev
  libaudio-dev libaudiofile-dev libavahi-client-dev libavahi-common-dev
  libavahi-qt3-dev libbz2-dev libcupsys2-dev libdbus-1-dev libesd0-dev
  libexpat1-dev libfontconfig1-dev libfreetype6-dev libgcrypt11-dev
  libgl1-mesa-dev libglib2.0-dev libglu1-mesa-dev libgnutls-dev libgnutlsxx13
  libgpg-error-dev libice-dev libidn11-dev libjasper-dev libjpeg62-dev
  libkadm55 libkrb5-dev libkrb53 liblcms1-dev liblua50-dev liblualib50-dev
  liblzo2-dev libmng-dev libogg-dev libopencdk8-dev libopenexr-dev
  libpcre3-dev libpcrecpp0 libpng12-dev libpopt-dev libqt3-headers
  libqt3-mt-dev libsasl2-dev libsm-dev libssl-dev libtasn1-3-dev libtiff4-dev
  libtiffxx0c2 libvorbis-dev libx11-dev libxau-dev libxcursor-dev libxdmcp-dev
  libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-dev
  libxml2-utils libxmu-dev libxmu-headers libxrandr-dev libxrender-dev
  libxslt1-dev libxt-dev lua50 mesa-common-dev pkg-config qt3-dev-tools
  x11proto-core-dev x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev
  x11proto-randr-dev x11proto-render-dev x11proto-xext-dev
  x11proto-xinerama-dev xtrans-dev zlib1g-dev
제안하는 꾸러미:
  doc-base kdesdk-doc-html dmalloc kdelibs4-doc qt3-doc valgrind devscripts
  libasound2-doc aspell-doc libgcrypt11-doc libglib2.0-doc gnutls-doc
  gnutls-bin krb5-doc krb5-user libqt3-i18n
추천하는 꾸러미:
  gawk libqt3-compat-headers
다음 새 꾸러미를 설치할 것입니다:
  comerr-dev gettext-kde hspell kdelibs4-dev kdesdk-scripts libacl1-dev
  libart-2.0-dev libarts1-dev libartsc0-dev libasound2-dev libaspell-dev
  libattr1-dev libaudio-dev libaudiofile-dev libavahi-client-dev
  libavahi-common-dev libavahi-qt3-dev libbz2-dev libcupsys2-dev libdbus-1-dev
  libesd0-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev
  libgcrypt11-dev libgl1-mesa-dev libglib2.0-dev libglu1-mesa-dev
  libgnutls-dev libgnutlsxx13 libgpg-error-dev libice-dev libidn11-dev
  libjasper-dev libjpeg62-dev libkadm55 libkrb5-dev liblcms1-dev liblua50-dev
  liblualib50-dev liblzo2-dev libmng-dev libogg-dev libopencdk8-dev
  libopenexr-dev libpcre3-dev libpcrecpp0 libpng12-dev libpopt-dev
  libqt3-headers libqt3-mt-dev libsasl2-dev libsm-dev libssl-dev
  libtasn1-3-dev libtiff4-dev libtiffxx0c2 libvorbis-dev libx11-dev libxau-dev
  libxcursor-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev
  libxinerama-dev libxml2-dev libxml2-utils libxmu-dev libxmu-headers
  libxrandr-dev libxrender-dev libxslt1-dev libxt-dev lua50 mesa-common-dev
  pkg-config qt3-dev-tools x11proto-core-dev x11proto-fixes-dev
  x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-render-dev
  x11proto-xext-dev x11proto-xinerama-dev xtrans-dev zlib1g-dev
다음 꾸러미를 업그레이드할 것입니다:
  libkrb53
1개 업그레이드, 89개 새로 설치, 0개 지우기 및 6개 업그레이드 안 함.
7539k바이트/31.4M바이트 아카이브를 받아야 합니다.
압축을 풀면 121M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]? y

  KDE 에서 사용하는 QT4 프로그래밍을 하므로 kdelibs-dev를 깔아야 합니다. 용량이 장난 아니군요^^; 그래도 필요한데 깔아야죠. 설치가 모두 끝난 뒤, 다시 Shift + F9를 눌러 컴파일 후 실행을 합니다. 창이 뜨는군요.
  그런데 우린 여기서 만족할 수 없죠? 버튼을 하나 더 추가해서 하나 묶어 보고도 싶고 그렇습니다. 그럼 어떻게 해야 될까요??

왼 쪽 FilSelector 메뉴에 들어가셔서 UI파일을 하나 수정하시면 됩니다. /src/프로젝트명widgetbase.ui 파일을 더블클릭하면 해당 창에 대한 위지윅 컨트롤 배치 화면이 나타납니다.

  VS.net 의 Dialog Editor 같은 부분과 비슷하게 컨트롤을 배치합니다. 전 PushButton을 선택하여 추가하였습니다. 경고 메시지가 뜨긴 하는데, 레이아웃에 추가하니 혹시나 실수로 클릭한게 아닌지 확인하는 것이므로 그냥 삽입하겠다라고 선택하시면됩니다. 그럼 이제 버튼을 클릭했을때 이 코드가 작동하도록 만들어주어야 겠죠.

 1. 배치한 버튼에서 마우스 오른쪽을 눌러 "Connections..." 메뉴를 선택합니다.
2. View & Edit Connections 창이 표시되면 New 버튼을 눌러 새 연결을 하나 만들어줍니다.
3. 추가로 만든 컨트롤이 button2 일 때, Sender를 pushButton2로 선택하고 Signal, Receiver, Slot을 원래있던 버튼과 동일하게 만들어줍니다.
4. 모두 저장한 뒤, Shift + F9를 눌러 실행해봅시다.

 ui 디자이너에서 추가한 버튼이 새로생성된 프로그램에서도 보이는 군요. 버튼을 클릭하면 원래 존재하던 버튼과 동일한 역할을 수행하게 됩니다. Label이 보였다 안보였다 하죠. 새로운 것은 아마 따로 개인적으로 하면 추가될 것 같네요. 간단하게 GUI 프로그램을 만들어보니 괜찮네요. 나중엔 더 쓸만한걸 만들 그 날까지 달려봅니다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

"Programming" 분류의 다른 글

한게임 자동테트리스 Ver 0.6 (22)2008/11/15
한게임 자동테트리스 Ver 0.2 (22)2008/11/03
Read Sector From Floppy (0)2008/07/17
어제 무작정 맹글어봤던 것입니다.. (2)2008/07/16
Com Control에서 Event 제작하기 (0)2008/07/10
2008/03/20 23:22 2008/03/20 23:22
TAG C++, GUI, KDevelop, Linux, Programming, QT4
받은 트랙백이 없고, 댓글이 없습니다.

트랙백 주소 :: http://www.filewiki.net/tc/trackback/37

댓글을 달아 주세요

◀ 이전페이지 1 ... 71 72 73 74 75 76 77 78 79 ... 110 다음페이지 ▶

블로그 이미지
First Sensation 귀차니스트
rss
  • 관리자
  • 글쓰기

카테고리

  • 전체 (110)
    • Computer (3)
    • Language (14)
    • Reverse Engineering (1)
    • Algorithm (9)
    • TopCoder (3)
    • Library (2)
    • Programming (19)
    • Programming Tip (9)
    • PSP-Programming (10)
    • Program (5)
    • Small Talk (31)
    • Document (4)

최근에 올라온 글

  • Gradient 작성중에 있습.... (3)
  • 게임&인터랙티브 애플리....
  • 한게임 자동테트리스 Ve.... (24)
  • Intel 64 And IA32 Arch.... (2)
  • 한게임 자동테트리스 Ve.... (24)

최근에 달린 댓글

  • 다운어덯게 받아요. difl 2008
  • 멋있네요 ㅎㅎ. 준호씨 2008
  • ^^; 그러셨군요.. 사실 동영.... 귀차니스트 2008
  • ㅋㅋ 속도 튜닝의 무서움 ㅜ.... 귀차니스트 2008
  • 관리자만 볼 수 있는 댓글입.... 비밀방문자 2008

달력

«   2009/01   »
일 월 화 수 목 금 토
        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 31

링크

  • kkamagui 프로그래밍 세상.
  • 류광의 번역 이야기.
  • 서광열의 프로그래밍 언....
  • 준호씨의 블로그.
  • 최익필의 이름없는 블로그.
  • 위키는 귀차니즘.

최근에 받은 트랙백

  • 궁극의 예외처리. 이름없는 블로그 2008
  • Maximum sum. 티스토리 지점 2008

글 보관함

  • 2008/12 (1)
  • 2008/11 (4)
  • 2008/10 (2)
  • 2008/09 (3)
  • 2008/08 (5)

태그목록

  • Chaos
  • 디인터레이스
  • Shell
  • 컬러체험단
  • QT4
  • TShell
  • ostreambuf_iterator
  • TTF
  • 팡야계산기
  • Application.Run
  • Borland
  • 폰트
  • Linux
  • Filtering
  • ACM-ICPC
  • Warcraft3
  • 한글표현
  • Image
  • Call By Reference
  • 이미지 프로세싱
  • Library
  • Directive
  • C++
  • Decompiler
  • boost::shared_ptr
  • std::copy
  • boost::Tokenizer
  • 라이브러리
  • RF959
  • 반복자

지역로그 : 태그 : 방명록 : 관리자 : 글쓰기
귀차니스트’s Blog is powered by Textcube 1.7.5 : Risoluto / Designed by DesignNia.net