사용자 도구

사이트 도구


qt:helloworld

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
qt:helloworld [2014/02/18 22:21] – 새로 만듦 changwooqt:helloworld [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ====== "Hello, World!" in Qt ====== ====== "Hello, World!" in Qt ======
 +Qt를 아래처럼 시그널과 슬롯을 이용해 "Hello, World!"를 아주 객체지향적(?)으로 출력할 수 있다. 그냥 "Hello, World!"를 출력하는 것보다는 한참 복잡하지만, Qt의 시그널, 슬롯 매커니즘이 잘 노출되어 있으므로 Qt 시작에 있어 개념을 잘 보여주는 예제라고도 볼 수 있다.
 <code cpp main.cpp> <code cpp main.cpp>
 #include <QCoreApplication> #include <QCoreApplication>
줄 23: 줄 23:
 } }
 </code> </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.1392762118.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki