logo

C++ GUI 프로그래밍 소개

C++에서 GUI(그래픽 사용자 인터페이스) 프로그래밍은 사용자가 작업할 수 있는 멋진 그래픽을 제공하는 최신 응용 프로그램 개발에 중요합니다. C++는 일반적으로 시스템 프로그래밍 및 게임 작성과 연결되어 있지만 GUI 작성에 대한 훌륭한 대안이 될 수 있습니다. 이 기사에서는 C++의 GUI 프로그래밍, C++용으로 널리 사용되는 GUI 라이브러리, C++에서 기본 GUI 애플리케이션을 만드는 방법에 대해 설명합니다.

전제 조건: C++, C++ OOP, 일부 GUI 라이브러리의 기초.



GUI(그래픽 사용자 인터페이스)란 무엇입니까?

GUI(그래픽 사용자 인터페이스)는 사용자가 소프트웨어와 통신할 수 있는 창, 텍스트 상자 및 버튼과 같은 그래픽을 사용하여 제공되는 시각적 응용 프로그램 인터페이스입니다. GUI는 사용자가 키보드에만 의존하지 않고 마우스나 터치스크린 등 기타 입력 장치를 사용할 수 있어 CLI(명령줄 인터페이스)에 비해 대화형이고 사용하기 쉬운 플랫폼을 제공합니다.

GUI 프로그래밍의 주요 개념

그래픽 사용자 인터페이스(GUI)에는 모두 대화형 사용자 인터페이스 구성 요소인 창, 대화 상자, 버튼 등을 디자인하는 작업이 포함됩니다. 그런 다음 onClick, onHover 등과 같은 이벤트 핸들러를 사용하여 이러한 위젯을 제어합니다.

GUI 프로그래밍의 주요 개념은 다음과 같습니다.



위젯

GUI(그래픽 사용자 인터페이스)는 위젯으로 구성됩니다. 예를 들어 여기에는 버튼, 텍스트 상자, 라벨 등이 포함됩니다. 각 위젯의 속성과 동작은 애플리케이션의 특정 요구 사항에 따라 사용자 정의할 수 있습니다. GUI 라이브러리에는 일반적으로 다음과 같은 위젯이 있습니다.

  1. 창문: 내부에 다른 위젯을 호스팅하는 최상위 창 프레임입니다.
  2. 단추: 클릭과 관련된 일부 이벤트가 있는 클릭 가능한 버튼입니다.
  3. 상표: 단순 읽기 전용 텍스트
  4. 체크박스 : 켜거나 끌 수 있는 옵션을 제공하는 상자입니다.
  5. 라디오 버튼: 켜거나 끌 수 있는 옵션을 제공하는 상자이지만 그룹에서 하나의 라디오 버튼만 선택할 수 있습니다.
  6. 드롭다운/콤보 상자 : 클릭하면 드롭다운 메뉴가 열립니다. 열리지 않은 형태에서는 하나의 항목만 표시될 수 있습니다.
  7. 텍스트 상자: 편집 가능한 텍스트 영역.
  8. 리스트 박스: 여러 항목이 포함된 상자와 모든 항목을 살펴볼 수 있는 스크롤 막대입니다.
  9. 슬라이더: 애플리케이션 주위를 이동하는 데 사용되는 탐색 위젯입니다.
  10. 메뉴: 상단에 표시된 메뉴는 애플리케이션 사용자에게 다양한 옵션을 제공합니다.
  11. 대화 상자: 창 상단에 표시되는 상자입니다. 때로는 알림을 표시합니다.
  12. 그리드: UI의 레이아웃 관리에 사용됩니다.

레이아웃 관리

GUI 애플리케이션은 화면에 구성된 다양한 위젯을 통해 매력적이면서도 효과적인 사용자 인터페이스를 유지하기 위해 다양한 크기, 해상도 등의 다양한 화면에 맞게 최적화되어야 합니다.

이벤트 처리

GUI 프로그래밍에서는 버튼 클릭이나 키 누르기와 같은 이벤트가 중요합니다. 이러한 이벤트는 사용자 작업을 따를 수 있도록 앱에서 처리됩니다. 다양한 위젯과 관련된 다양한 이벤트가 있습니다. 예를 들어 클릭 가능한 버튼의 경우 관련 이벤트는 다음과 같습니다.



  1. 클릭 이벤트
  2. 마우스 이동 이벤트
  3. 이벤트 집중
  4. 포커스 아웃 이벤트

C++용 인기 GUI 라이브러리

C++에는 GUI 응용 프로그램을 개발하는 데 사용할 수 있는 플랫폼 독립적인 GUI 라이브러리가 많이 있습니다. 인기 있는 것 중 일부는 다음과 같습니다.

  1. gtkmm
  2. Qt
  3. wx위젯
  4. 친애하는 ImuGui

C++ GUI 응용 프로그램의 예

우리는 아래 프로그램에 다음 도구를 사용할 것입니다:

  1. Qt 라이브러리 : 우리 프로그램의 GUI 라이브러리입니다.
  2. Qt 디자이너: Qt용 대화형 GUI 템플릿 디자이너.
  3. Qt 창조자: Qt GUI 애플리케이션용 IDE

이제 C++와 Qt를 이용한 GUI 프로그래밍의 실제 사례를 살펴보겠습니다. 우리는 기본 Hello World 애플리케이션 버튼을 개발할 예정이며, 버튼을 클릭하면 Hello World 텍스트가 적힌 대화 상자가 나타납니다. 다음 단계를 사용하여 구현하겠습니다.

1단계: Qt 프로젝트 생성

Qt Creator를 열고 Qt Widget Application 유형의 새 프로젝트를 생성하겠습니다. 이름을 입력하고 위치를 선택하면 됩니다. Qt 작성자는 필요한 모든 파일을 사용하여 프로젝트를 생성합니다.

프로젝트 생성

int를 문자열 java로 변환하는 방법

2단계: 창 디자인

그런 다음 파일을 열어 보겠습니다. mainWindow.ui . 이 파일에는 애플리케이션의 UI가 포함되어 있습니다. 방금 연 디자이너를 사용하여 하나의 텍스트 라벨을 추가하겠습니다.

이제 파일에는 다음 코드가 포함됩니다.

mainWindow.h

C++




자바의 현재 날짜
#ifndef MAINWINDOW_H> #define MAINWINDOW_H> > #include> > QT_BEGIN_NAMESPACE> namespace> Ui {>class> MainWindow; }> QT_END_NAMESPACE> > class> MainWindow :>public> QMainWindow> {> >Q_OBJECT> > public>:> >MainWindow(QWidget *parent = nullptr);> >~MainWindow();> > private>:> >Ui::MainWindow *ui;> };> #endif // MAINWINDOW_H>

>

>

메인.cpp

C++




#include 'mainwindow.h'> > #include> > int> main(>int> argc,>char> *argv[])> {> >QApplication a(argc, argv);> >MainWindow w;> >w.show();> >return> a.exec();> }>

>

>

mainWindow.cpp

C++




#include 'mainwindow.h'> #include './ui_mainwindow.h'> > MainWindow::MainWindow(QWidget *parent)> >: QMainWindow(parent)> >, ui(>new> Ui::MainWindow)> {> >ui->setupUi(>this>);> }> > MainWindow::~MainWindow()> {> >delete> ui;> }>

자바 연결 문자열
>

>

mainWindow.ui

XML




xml version='1.0' encoding='UTF-8'?> 메인윈도우클래스> 0x>0y>800폭>600높이> 직사각형> 속성> MainWindowsstring> 속성> 260x>140년>81폭>71높이> 직사각형> 속성> Hello Worldstring> 속성> 위젯> 위젯> 0x>0y>800폭>22height> 직사각형> 속성> 위젯>위젯> ui>>

>

>

mainWindow.ui는 XML로 작성되었습니다. Qt가 UI 파일을 XML로 작성하기 때문입니다.

4단계: 빌드 및 실행

클릭 한 번으로 Qt Creator에서 Qt 프로젝트를 빌드하고 실행할 수 있습니다.

산출

hello_world

GUI 애플리케이션의 장점

GUI 애플리케이션은 더 나은 사용자 경험과 간소화된 개발에 기여하는 여러 가지 이점을 제공합니다.

  • 사용자 친화적 인 인터페이스: 그래픽 사용자 인터페이스(GUI)를 사용하면 시간이 더 많이 걸리는 다른 접근 방식에 비해 소프트웨어 애플리케이션에 대한 간단하고 사용하기 쉬운 접근 방식을 제공합니다.
  • 향상된 상호 작용: 여기에는 사용자에게 자신의 경험에 대한 강력한 힘을 제공하는 버튼, 드롭다운 메뉴, 확인란, 슬라이더와 같은 대화형 기능이 포함됩니다.
  • 플랫폼 간 호환성: Qt와 같은 언어를 사용하면 Windows, macOS, Linux with C++용 GUI 애플리케이션을 만들 수 있습니다.
  • 신속한 프로토 타입: GUI 프레임워크에 많은 GUI 빌더와 디자인 도구가 있으면 인터페이스의 빠른 프로토타이핑이 촉진되어 전체 개발 프로세스가 더 빨라집니다.