내용으로 건너뛰기
ChangwooWiki
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
qt:helloworld
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== "Hello, World!" in Qt ====== Qt를 아래처럼 시그널과 슬롯을 이용해 "Hello, World!"를 아주 객체지향적(?)으로 출력할 수 있다. 그냥 "Hello, World!"를 출력하는 것보다는 한참 복잡하지만, Qt의 시그널, 슬롯 매커니즘이 잘 노출되어 있으므로 Qt 시작에 있어 개념을 잘 보여주는 예제라고도 볼 수 있다. <code cpp main.cpp> #include <QCoreApplication> #include <QTimer> #include "signal_emitter.h" int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); // emitter is now a child of core application app. // app will delete emitter. signal_emitter *emitter = new signal_emitter(&app); // when emitter emits 'finished' signal, app will be terminated. QObject::connect(emitter, SIGNAL(finished()), &app, SLOT(quit())); // we emit initial 'launch()'. QTimer::singleShot(0, emitter, SLOT(launch())); return app.exec(); } </code> 실제로 작업을 담당하는 signal_emitter 클래스는 다음과 같이 정의하였다. <code cpp signal_emitter.h> #ifndef SIGNAL_EMITTER_H #define SIGNAL_EMITTER_H #include <QObject> class signal_emitter : public QObject { Q_OBJECT public: explicit signal_emitter(QObject *parent = 0); signals: void finished(); // DO NOT implement, or will cause link error. public slots: void launch(); // Fired by QTimer::singleShot() }; #endif // SIGNAL_EMITTER_H </code> <code cpp signal_emitter.cpp> #include "signal_emitter.h" #include <iostream> signal_emitter::signal_emitter(QObject *parent) : QObject(parent) { } void signal_emitter::launch() { std::cout << "Hello, world!\n"; emit finished(); } </code> 소스 코드는 {{:qt:signal_slots.tar.gz|여기}}서 다운로드 가능하다. 시그널과 슬롯에 대해서는 [[.:SignalsAndSlots]]에서 보다 자세히 다룰 것이다.
qt/helloworld.txt
· 마지막으로 수정됨: 2014/10/09 21:24 저자
127.0.0.1
문서 도구
문서 보기
이전 판
역링크
맨 위로