간단하게 시그널, 슬롯을 이용하여 QPushButton 위젯을 띄운 후 이 버튼을 클릭을 하게 되면
닫히도록 하는 것을 해 보겠다.
일단 시그널, 슬롯을 간단하게 설명하면,
"내가 휴대폰으로 전화를 걸면 상대편이 받는다. " 라는 예로 설명을 하면
전화를 걸면 => 시그널
상대편이 받는다. => 슬롯
이렇게 시그널이라는 동작이 생기면, 슬롯이라는 행동을 한다.
라고 간단히 생각하면 된다.
그래서 처음에 하기로 한 작업인 QPushButton 위젯을 띄운 후 이 버튼을 클릭을 하게 되면
닫히도록 하는 것은 버튼을 클릭하는 것을 시그널로 닫히도록 하는 것은 슬롯으로
나타낸다고 생각하면 될 것 같다.
그럼 일단, 소스 부터 보면,
이렇게 구현이 되며,
결과 화면은
이렇게 일반 버튼 위젯을 띄울때와 같다.
하지만 저 close 버튼을 누르게 되면, 위젯이 사라지게 된다.
간단하게 소스 분석을 하게 되면,
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));
이 부분이 시그널, 슬롯을 하는 함수인데,
이 함수는 보는 것 처럼 QObject 클래스에 속해 있는 멤버함수 connect를 이용하게 된다.
connect함수의 원형을 보게 되면,
bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method,
Qt::ConnectionType type = Qt::AutoConnection )
이렇게 되어 있다.
첫번째 인자에는 시그널 동작을 할 위젯이나, 다이얼로그 등의 객체를 적어 주고,
두번째 인자에는 어떤 시그널을 할 것인지,
세번째 인자에는 그 시그널로 인하여 동작을 이룰 위젯이나, 다이얼로그 등의 객체를 적으며,
네번째 인자에는 동작할 슬롯을 적어 주면 된다.
그래서 위 소스의 내용을 분석하면, button 위젯이 클릭이 될때 생성된 어플리케이션이 quit 즉, 종료 되라 라는
시그널 슬롯을 만들었다.
닫히도록 하는 것을 해 보겠다.
일단 시그널, 슬롯을 간단하게 설명하면,
"내가 휴대폰으로 전화를 걸면 상대편이 받는다. " 라는 예로 설명을 하면
전화를 걸면 => 시그널
상대편이 받는다. => 슬롯
이렇게 시그널이라는 동작이 생기면, 슬롯이라는 행동을 한다.
라고 간단히 생각하면 된다.
그래서 처음에 하기로 한 작업인 QPushButton 위젯을 띄운 후 이 버튼을 클릭을 하게 되면
닫히도록 하는 것은 버튼을 클릭하는 것을 시그널로 닫히도록 하는 것은 슬롯으로
나타낸다고 생각하면 될 것 같다.
그럼 일단, 소스 부터 보면,
#include#include #include int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton *button = new QPushButton; button->setText("close"); button->show(); QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit())); return app.exec(); }
이렇게 구현이 되며,
결과 화면은
이렇게 일반 버튼 위젯을 띄울때와 같다.
하지만 저 close 버튼을 누르게 되면, 위젯이 사라지게 된다.
간단하게 소스 분석을 하게 되면,
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));
이 부분이 시그널, 슬롯을 하는 함수인데,
이 함수는 보는 것 처럼 QObject 클래스에 속해 있는 멤버함수 connect를 이용하게 된다.
connect함수의 원형을 보게 되면,
bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method,
Qt::ConnectionType type = Qt::AutoConnection )
이렇게 되어 있다.
첫번째 인자에는 시그널 동작을 할 위젯이나, 다이얼로그 등의 객체를 적어 주고,
두번째 인자에는 어떤 시그널을 할 것인지,
세번째 인자에는 그 시그널로 인하여 동작을 이룰 위젯이나, 다이얼로그 등의 객체를 적으며,
네번째 인자에는 동작할 슬롯을 적어 주면 된다.
그래서 위 소스의 내용을 분석하면, button 위젯이 클릭이 될때 생성된 어플리케이션이 quit 즉, 종료 되라 라는
시그널 슬롯을 만들었다.
'QT > QT 4.6.2' 카테고리의 다른 글
간단한 파일 입 / 출력 하기!! (0) | 2010.04.30 |
---|---|
시그널(Signal) / 슬롯(Slot)을 이용한 메세지 띄우기 (0) | 2010.04.27 |
두개의 버튼을 하나의 창에 띄우기!! (0) | 2010.04.24 |
버튼 출력하기 (0) | 2010.04.24 |
Hello QT!! (0) | 2010.04.21 |