ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [QT] 프로그래밍의 시작 hello world 출력하기
    Programming/QT 2018. 11. 28. 23:09


    *Qt 공부를 위해 기록한 포스팅입니다. 잘못된 정보나 오타가 있을시 피드백 부탁드립니다.*



    "Hello world!"

    Qt로 어떻게 출력할까?




    1. 프로젝트 생성

    - Name: hello_world로 프로젝트 생성




    - 클래스명을 바꾸면 자동으로 헤더/소스파일 이름도 클래스명에 따라 바뀜




    2. 소스 코드 

    - Sources - main.cpp로 들어가 아래 코드 입력




    첫번째 방법

    #include <QApplication>
    #include <QLabel>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
        QLabel * label = new QLabel;
        label ->setText("hello world!");
        label ->show();
    
        return a.exec();
    }
    



    두번째 방법

    #include <QApplication>
    #include <QLabel>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
        QLabel * label = new QLabel("hello world!");
        label ->show();
    
        return a.exec();
    }



    3. Line-by-Line 설명

    #include <QApplication>
    #include <QLabel>

    - <QApplication>, <QLabel> 클래스를 사용하기 위해 헤더파일을 선언



    int main(int argc, char *argv[])

    - Qt에서의 main()함수 역할은 QT라이브러리로 제어권을 넘기기 전, 초기화 작업을 수행하는 것


      argc: 프로그램을 실행했을때 전달된 명령행 인자의 개수

      argv: 프로그램으로 실제로 전달된 명령행 인자의 배열



     QApplication a(argc, argv);

    - QApplication의 인스턴스 a 생성

      QApplication a = QApplication (argc, argv);



    QLabel * label = new QLabel;

    - QLabel 클래스 위젯 선언 (QLabel 클래스 타입의 객체 할당)


    QLabel * label = new QLabel("hello world!");

    - new 연산자로 QLabel의 객체를 할당받을때 ("hello world!")를 인자로 받아 생성

    + 1번 방법의 경우 setText 메소드를 사용


    label ->show();

    - label의 show()멤버 함수를 호출해 화면에 띄어줌


    return a.exec();

    - main()이 QT에게 제어권을 전달

    - 어플리케이션의 이벤트 루프로 들어감 즉, 사용자가 '이벤트'를 발생시킬때까지 무한 루프상태로 대기



    Comment

Designed by black7375.