1 / 16

QT 프로그래밍

QT 프로그래밍. 발표자 김래영. X-Window 용 GUI toolkit. QT Qt 는 노르웨이 Trolltech 회사가 개발한 GUI Toolkit. KDE 데스크탑 라이브러리 GTK GNOME 데스크탑 라이브러리 Motif Commercial Version. QT 의 특징. 멀티플랫폼 C++ GUI Toolkit “Write Once, compile anywhere” C++ 기반의 개체지향 클래스 라이브러리 C++ 클래스로 캡슐화 상속을 이용 기능 확장

olwen
Download Presentation

QT 프로그래밍

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. QT 프로그래밍 발표자 김래영

  2. X-Window용 GUI toolkit • QT • Qt 는 노르웨이 Trolltech 회사가 개발한 GUI Toolkit. • KDE 데스크탑 라이브러리 • GTK • GNOME 데스크탑 라이브러리 • Motif • Commercial Version

  3. QT 의 특징 • 멀티플랫폼 C++ GUI Toolkit • “Write Once, compile anywhere” • C++ 기반의 개체지향 클래스 라이브러리 • C++ 클래스로 캡슐화 • 상속을 이용 기능 확장 • Signal / Slot 매커니즘 ( C++의 확장 ) • 객체( Object )의 신호(Signal)를 다른 객체(Object) 슬롯(Slot)에 연결

  4. Qt 의 구조

  5. Qt 구조

  6. QT 설치 • QT/X11 Free Edition Download • www.trolltech.com ( 최신버전: version 3.3.0b1 ) • 환경변수 설정 • QTDIR : Qt가 설치되어 있는 곳 • PATH : Qt 유틸에 대한 경로 • LD_LIBRARY_PATH : Qt 라이브러리 경로 • QTDIR=/usr/local/qt PATH=$QTDIR/bin:/$PATH LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH • 설치 • ./configure • Make • 라이브러리 등록 • /etc/ld.so.conf 파일에 등록

  7. QT Virtual FrameBuffer • 프레임버퍼 설정 • /etc/lilo.conf 파일 수정 (Console) • vga=0x317 #1024 x 768, 16 bit color • Qt Virtual FrameBuffer 실행 ( X-window) • ./qvfb –width 640 –height 480 –depth 16 • 가상 프레임 버퍼를 실행 • ./launcher –qws • Launcher 프로그램을 가상프레임버퍼로 실행

  8. Qt 도구들 • Moc( meta object compiler ) • Qt 소스를 C++ 컴파일러가 컴파일 할 수 있도록 Meta Object 코드생성 • Qt designer • GUI 구성을 쉽게 해주는 tool • tmake • 프로젝트 파일(.pro)을 가지고 Makefile 을 만듬 • progen • 프로젝트 파일(.pro) 자동 생성 • Qt Liguist • Qt Assistant

  9. QT Compile • 유틸리티 사용 • $ progen –o hello.pro hello.h hello.cpp main.cpp • $ tmake hello.pro –o Makefile • $ qmake 환경으로 통합 • qmake –project • qmake • make • $gcc –c hello.cpp –I$QTDIR/include • $gcc –o hello –L$QTDIR/lib –L/usr/X11R6/lib –lqt –lX11 –lXext hello.o Progen Project.pro tmake Makefile

  10. Widget - 사용자의 화면을 구성하는 보이는 요소 QObject QTimer QWidget QDialog QFrame QSpinBox QLabel QLineEdit

  11. Signal & Slot • Signal • 사용자가 객체(위젯)에서 행동을 했을 때 발생하는 신호 • Slot • Signal 이 발생했을 때의 처리방식을 정의 • Connect() 함수 • Signal 과 Slot 을 하나로 묶음 • Disconnect() 함수 • Signal 과 Slot 을 분리

  12. Signal & Slot connect( &Widget1, SIGNAL( clicked() ) , &Widget2 , SLOT( show() ) );

  13. Sample Program: Hello world ! #include <qapplication.h> #include <qpushbutton.h> int main( int argc, char *argv[] ) { Qapplication a( argc, argv ); QPushButton hello( “hello world!”,0 ); hello.resize( 100,30 ); a.setMainWidget( &hello ); hello.show(); return a.exec(); } Compile :$ qmake –project -> $ qmake ->make

  14. Event Handling: Signal and Slot #include <qapplication.h> #include <qpushbutton.h> int main( int argc, char **argv ) { QApplication a( argc, argv ); QPushButton quit( "Quit", 0 ); quit.resize( 75, 30 ); QObject::connect( &quit, SIGNAL(clicked()),&a, SLOT(quit()) ); a.setMainWidget( &quit ); quit.show(); return a.exec(); } Compile :$ qmake –project -> $ qmake ->make

  15. 참고자료 • Qt 레퍼런스 • http://doc.trolltech.com/3.2 • Qt 리눅스 프로그래밍 (한컴프레스) • Programming with Qt • kldp.org Qt공개 세미나 • 스마츠콜개발자 서영진

More Related