QT 강좌 02 - Simple GUI

QT5 / / 2021. 8. 14. 08:25
반응형

윈도우를 보여주는 간단한 QT5 예제입니다. 

 

아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. 

https://zetcode.com/gui/qt5/introduction/ 



2021. 08. 09 - 최초작성



터미널에서 빌드 및 실행을 진행합니다. 편집기는 익숙한 것을 사용하세요. 




1. 프로젝트 파일들을 저장할 디렉토리를 생성하고 이동합니다.

 

pi@raspberrypi:~ $ mkdir SimpleGUI

 

pi@raspberrypi:~ $ cd SimpleGUI



2. simple.cpp 파일을 생성하여 다음 코드를 복사하여 붙여넣기합니다. 

#include <QApplication>
#include <QWidget>

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

    QApplication app(argc, argv);

    QWidget window;

    window.resize(250, 150);
    window.setWindowTitle("Simple example");
    window.show();

    return app.exec();
}

 

 

QApplication app(argc, argv);

 

Qt를 사용하는 GUI 응용 프로그램에는 하나의 QApplication 객체가 있어야 합니다.

QApplication 클래스는 GUI Qt 응용 프로그램에 대한 이벤트 루프를 제공합니다.

이 클래스는 GUI 응용 프로그램에서 이벤트 루프를 제공하는 데 사용됩니다.



QWidget window;

 

QWidget는 본 예제에서 메인 위젯 입니다. 



window.resize(250, 150);

 

위젯의 크기를 조정합니다. 



window.setWindowTitle("Simple example");

 

윈도우의 제목표시줄에 표시되는 문자열입니다. 여기에선 QWidget이 기본 윈도우입니다. 



window.show();

 

위젯을 화면에 보여줍니다.



return app.exec();

 

애플리케이션의 메인 루프를 시작합니다.




3. qmake -project 명령을 사용하면 qt 프로젝트 파일을 생성해줍니다.

프로젝트를 구성하는 파일의 정보를 가지고 확장자가 pro인 파일이 자동으로 생성합니다. 

 

pi@raspberrypi:~/SimpleGUI $ qmake -project

 

pi@raspberrypi:~/SimpleGUI $ ls

simple.cpp  SimpleGUI.pro



4. 확장자가 pro인  qt 프로젝트 파일이 생성될 때, qt 코드에서 사용중인 qt 모듈 이름이 자동으로 추가되지 않습니다.  

일단 진행해보고 컴파일 에러가 나면 qt 프로젝트 파일을 열어서 사용중인 qt 모듈 이름을 추가해줘야 합니다.

 

다음 한줄을 추가합니다. 

 

QT += widgets



5. qmake 명령으로 Makefile을 생성합니다.

Makefile은 다음 두 가지 과정을 자동화하기 위해 필요한 것들을 기술하고 있습니다.

  • 컴파일러로 소스 코드 파일을 컴파일하여 오브젝트 파일을 생성
  • 링커를 사용하여 오브젝트 파일과 라이브러리 파일을 결합하여 실행 파일을 생성

 

 

pi@raspberrypi:~/SimpleGUI $ qmake

Info: creating stash file /home/pi/SimpleGUI/.qmake.stash

 

pi@raspberrypi:~/SimpleGUI $ ls

Makefile  simple.cpp  SimpleGUI.pro



6. make 명령은  Makefile에 기술된대로 컴파일 및 링크를 실행합니다.

 

pi@raspberrypi:~/SimpleGUI $ make

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtWidgets -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -I. -I/usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -o simple.o simple.cpp

g++ -Wl,-O1 -o SimpleGUI simple.o   -lQt5Widgets -lQt5Gui -lQt5Core -lGLESv2 -lpthread -latomic 



중간 결과물인  확장자 .o인 오브젝트 파일과 프로젝트 디렉토리와 동일한 이름을 갖는 실행파일이 생성되었습니다.  

 

pi@raspberrypi:~/SimpleGUI $ ls

Makefile  simple.cpp  SimpleGUI  SimpleGUI.pro  simple.o



이제 실행시켜 보면 윈도우가 보입니다. 

pi@raspberrypi:~/SimpleGUI $ ./SimpleGUI

 



반응형

해본 것을 문서화하여 기록합니다.
부족함이 있지만 도움이 되었으면 합니다.


포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">