Gtkmm

Gtkmm
저장소
프로그래밍 언어C++
플랫폼GTK
종류언어 바인딩
라이선스GNU 약소 일반 공중 사용 허가서
웹사이트gtkmm.gnome.org

gtkmm(이전 명칭 gtk-- 또는 gtk minus minus)은 인기 있는 GUI 라이브러리인 GTK를 위한 공식 C++ 인터페이스다. gtkmm은 GNU 약소 일반 공중 사용 허가서(LGPL)에 따라 배포되는 자유 소프트웨어다.

gtkmm을 사용하면 코드 내에서 직접 또는 글레이드 인터페이스 디자이너를 활용하여 Gtk::Builder 클래스로 사용자 인터페이스를 생성할 수 있다. 다른 기능으로는 형식 안전(typesafe) 콜백, 포괄적인 그래픽 컨트롤 요소 세트, 상속을 통한 위젯 확장성 등이 있다.

특징

gtkmm은 GUI 라이브러리인 GTK의 공식 C++ 인터페이스이므로, C++ 프로그래머는 OOP 기법인 상속과 같은 일반적인 기술과 STL과 같은 C++ 고유의 기능을 사용할 수 있다 (실제로 위젯 컨테이너를 위한 많은 gtkmm 인터페이스는 표준 템플릿 라이브러리(STL)와 유사하게 설계되었다).

gtkmm의 주요 특징은 다음과 같다:

gtkmm의 Hello World

//HelloWorldWindow.h

#ifndef HELLOWORLDWINDOW_H
#define HELLOWORLDWINDOW_H

#include <gtkmm/window.h>
#include <gtkmm/button.h>

// 기존 위젯에서 새로운 창 위젯을 상속받음.
// 이 창은 "Hello World"라는 라벨이 붙은 버튼만 포함함.
class HelloWorldWindow : public Gtk::Window
{
  public:
    HelloWorldWindow();

  protected:
    Gtk::Button hello_world;
};

#endif
//HelloWorldWindow.cc

#include <iostream>
#include "HelloWorldWindow.h"

HelloWorldWindow::HelloWorldWindow() : hello_world("Hello World")
{
    // 창의 제목 설정.
    set_title("Hello World");

    // 멤버 버튼을 창에 추가.
    set_child(hello_world);

    // 'clicked' 시그널 처리.
    hello_world.signal_clicked().connect([] () {
          std::cout << "Hello world" << std::endl;
    });
}
//main.cc

#include <gtkmm/application.h>
#include "HelloWorldWindow.h"

int main(int argc, char *argv[])
{
    // 애플리케이션 객체 생성.
    auto app = Gtk::Application::create("org.gtkmm.example");

    // hello world 창 객체를 생성하고 닫힐 때 반환함.
    return app->make_window_and_run<HelloWorldWindow>(argc, argv);
}

위 프로그램은 "Hello World"라는 라벨이 붙은 버튼이 있는 창을 생성한다. 버튼을 클릭하면 표준 출력으로 "Hello world"를 보낸다.

프로그램은 다음 명령어를 사용하여 실행된다:

$ g++ -std=c++17 *.cc -o example `pkg-config gtkmm-4.0 --cflags --libs`
$ ./example

이 작업은 보통 간단한 메이크파일을 사용하여 수행된다.

응용 프로그램

gtkmm을 사용하는 주요 응용 프로그램은 다음과 같다:

같이 보기

각주

외부 링크