gtkmm

Gtkmm
Логотип программы Gtkmm
Скриншот программы Gtkmm
Тип GTK software binding[вд], библиотека функций и библиотека виджетов[вд]
Написана на C++
Операционные системы Unix-подобная операционная система, Windows и macOS
Последняя версия
Репозиторий gitlab.gnome.org/GNOME/g…
Лицензия GNU Lesser General Public License
Сайт gtkmm.org
Логотип Викисклада Медиафайлы на Викискладе

gtkmm (ранее известный как gtk-- или gtk minus minus) — официальный C++-интерфейс для популярной GUI-библиотеки GTK. Включает слоты и сигналы с проверкой типов во время компиляции (благодаря библиотеке libsigc++[англ.]), наследование виджетов с использованием стандартного способа C++ и полный набор виджетов, предоставляемых GTK. Графический интерфейс программы может создаваться программно или с использованием Glade.

Библиотека gtkmm является свободным программным обеспечением и распространяется на условиях GNU LGPL.

Особенности

[править | править код]

Основные возможности gtkmm:

Примеры программ

[править | править код]

Создание пустого окна

[править | править код]
#include <gtkmm.h>  int main(int argc, char* argv[]) {     auto application = Gtk::Application::create(argc, argv);     Gtk::Window window;     return application->run(window); } 

Компиляция:

   g++ file_name.cpp -o file_name `pkg-config gtkmm-3.0 --cflags --libs` 
//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");      // Добавить кнопку к окну.     add(hello_world);      // Обрабатывать клик.     hello_world.signal_clicked().connect([] () {           std::cout << "Hello world" << std::endl;     });     // Отобразить дочерние виджеты окна.     show_all_children(); } 
//main.cc  #include <gtkmm/main.h> #include "HelloWorldWindow.h"  int main(int argc, char *argv[])  {     // Инициализация     Gtk::Main kit(argc, argv);      // Создание объекта окна     HelloWorldWindow example;      // Main-цикл gtkmm     Gtk::Main::run(example);     return 0; } 

Приведенная выше программа создаст окно с кнопкой «Hello World». При нажатии на кнопку «Hello world» выводится на стандартный вывод.

Программа запускается с помощью следующих команд:

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

Обычно это делается с помощью простого make-файла.

Примечания

[править | править код]