프로그래밍과 잡담

[Qt] 4. 사용자 정의 클래스. 본문

프로그래밍/Qt

[Qt] 4. 사용자 정의 클래스.

크레온 2009. 12. 12. 21:22
전에 있는거들은.. 죄다 ..

Qt에서 제공되는 클래스를 사용했다..

이번에는 내가 원하는 클래스를 만들어 본다.


소스를 보면.. QWidget클래스를 상속을 받고 있다..

그리고 생성자와 소멸자가 있다.
생서자의 경우는 QWidget* 를 매개변수로 이용한다.

그리고 보면 Q_OBJECT 라는 매크로가 있다.

요 메크로를 안적어놓으면 connect가 작동 안한다.

고로 시그널과 슬롯을 사용하길 원한다면 Q_OBJECT를 써 놓으면 된다.

그리고 Q_OBJECT를 안쓰면 컴파일 하고 폴더를 살펴보면  debug 폴더에 o 파일 밖에 없다.

하지만 Q_OBJECT를 사용하면 moc_클래스이름.cpp 파일이 생긴것을 볼 수 있다.

저 파일은 MOC(Meta Object Compiler)가 만들어 놓은 것이다.

자세한 것은 실험을 해보면 알 수 있다.

그리고 실행결과는 그냥 창 하나만 뜨고 만다.

이유야.. 뭘 추가한게 없기 때문이다.

그래서 이 창에다가 버튼을 한개 넣고 버튼을 클릭하면 메시지 박스가 나오는것을 할것이다.


소스를 보면 음영을 한 부분을 주목하면 된다.

public slots: 라고 써있다. 이 밑에다가 쓰는 것들은 모두 슬롯이라는 의미이다.
signal 도 마찮가지로 public signal: 이라 사용한다.

위에 있는 방식을 토대로 Qt는 만들어지게 된다.

물론 이런식으로 만들지는 않는다. ui 편집기라는게 있어서 편하게 편집을 할 수 있다.


-------------------------------------------
이전 글들
3. QPushButton
2 .QWidget
1. Hello World




반응형

'프로그래밍 > Qt' 카테고리의 다른 글

[Qt]실행파일 아이콘 만들기..  (0) 2010.01.22
[Qt] http에 연결을 해보자..  (0) 2010.01.11
[Qt]3. QPushButton  (0) 2009.12.12
[Qt] 2. QWidget  (0) 2009.12.05
[Qt를 하자]1. Hello World를 띄우자.  (0) 2009.12.03
Comments