QT/QT 3.3

[QT 3] 기초 프로그래밍 4

행복하면 2009. 4. 29. 18:37
/***********************************************************

네번째 : 화면의 타이틀에 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();
}