/***********************************************************
네번째 : 화면의 타이틀에 Hello World을 출력 하고
pushbutton을 만들고 클릭하면 프로그램을 종료하는 프로그램
************************************************************/
#include
#include
#include //QPushButton클래스를 사용하기 위해 선언한 헤더 파일
/************************************************************
============ 클래스 ============
QPushButton클래스 : 가장 많이 사용되는 GUI의 구성요소인 버튼으로 사용자가 누르고
뗄 수 있음. 그리고 텍스트 또는 QPixmap을 이용한 이미지를
표현 할 수 있음
일반적으로 버튼은 이 클래스 사용
============ 함수 ============
setCaption("설정할 내용") : 캡션을 설정 하는 함수 캡션을 타이틀 이라고도 함
setGeometry(20,20,80,40) : 출력할 위치를 결정
connect(bt1, SIGNAL(clicked()), qApp, SLOT(quit()))
: 첫번째 인자인 bt1은 푸쉬 버튼 위젯의 포인터
두번째 인자는 clicked()라는 시그널
세번째 인자는 qApp는 QApplication 객체의 포인터로 Qt프로그램 내에서 어디에
있던지 사용할 수 있는 인스턴스
네번째 인자는 quit()라는 시그널
즉, clicked() 시그널은 버튼이 클릭 되었을때 발생하는 시그널로
다시 말하면 만약 클릭이 되었다면, 시그널에 clicked()함수가 발생되어
시그널에 변화가 있기 때문에 슬롯의 quit() 시그널을 발생 시킴
************************************************************/
class MyWidget : public QWidget
{
public:
MyWidget();
private:
QPushButton* bt1;
};
MyWidget::MyWidget()
{
setCaption("Hello World");
bt1 = new QPushButton("Quit", this);
bt1->setGeometry(20,20,80,40);
connect(bt1, SIGNAL(clicked()), qApp, SLOT(quit()));
/*
클릭할 경우 clicked() 시그널 발생 그리고 qApp 객체의
quit() 슬롯 함수에서 연결해서 프로그램 종료
*/
}
int main(int argc, char** argv)
{
QApplication app(argc, argv);
MyWidget m;
app.setMainWidget(&m);
m.resize(150,100);
m.show();
return app.exec();
}