gtkmm (ранее известный как gtk-- или gtk minus minus [1] ) - это официальный интерфейс C ++ для популярной библиотеки графического интерфейса GTK . gtkmm - бесплатное программное обеспечение, распространяемое под Стандартной общественной лицензией ограниченного применения GNU (LGPL).
Репозиторий | |
---|---|
Написано в | C ++ |
Платформа | GTK |
Тип | Привязка к языку |
Лицензия | Стандартная общественная лицензия ограниченного применения GNU |
Веб-сайт | www |
gtkmm позволяет создавать пользовательские интерфейсы либо в коде, либо с помощью Glade Interface Designer , используя класс Gtk :: Builder. Другие функции включают безопасные обратные вызовы , полный набор графических элементов управления и расширяемость виджетов посредством наследования .
Функции
Поскольку gtkmm является официальным интерфейсом C ++ библиотеки GUI GTK , программисты на C ++ могут использовать общие методы ООП , такие как наследование , и специфические для C ++ средства, такие как STL (на самом деле, многие интерфейсы gtkmm, особенно для контейнеров виджетов , разработан так, чтобы быть похожим на стандартную библиотеку шаблонов (STL)).
Основные возможности gtkmm перечислены ниже:
- Используйте наследование для создания пользовательских виджетов .
- Типобезопасные обработчики сигналов в стандартном C ++ .
- Полиморфизм .
- Использование стандартной библиотеки C ++, включая строки , контейнеры и итераторы .
- Полная интернационализация с UTF-8 .
- Полное управление памятью C ++ .
- Состав объекта .
- Автоматическое освобождение динамически размещаемых виджетов .
- Полное использование пространств имен C ++ .
- Никаких макросов .
- Кроссплатформенность: Linux ( gcc , LLVM ), FreeBSD ( gcc , LLVM ), NetBSD ( gcc ), Solaris ( gcc , Forte ), Win32 ( gcc , MSVC ++ ), macOS ( gcc ) и другие.
Привет, мир в gtkmm
//HelloWorldWindow.h#ifndef HELLOWORLDWINDOW_H #define HELLOWORLDWINDOW_H#include #include // Создание нового оконного виджета из существующего. // Это окно будет содержать только кнопку с надписью "Hello World" class HelloWorldWindow : public Gtk :: Window { public : HelloWorldWindow (); защищенный : Gtk :: Button hello_world ; };#endif
//HelloWorldWindow.cc#include #include "HelloWorldWindow.h"HelloWorldWindow :: HelloWorldWindow () : hello_world ( "Hello World" ) { // Устанавливаем заголовок окна. set_title ( «Привет, мир» ); // Добавляем кнопку участника в окно, add ( hello_world ); // Обрабатываем событие "щелчок". hello_world . signal_clicked (). connect ([] () { std :: cout << "Привет, мир" << std :: endl ; }); // Отображаем все дочерние виджеты окна. show_all_children (); }
//main.cc#include #include "HelloWorldWindow.h"int main ( int argc , char * argv []) { // Инициализация Gtk :: Main kit ( argc , argv ); // Создание объекта окна приветственного мира HelloWorldWindow example ; // основной цикл gtkmm Gtk :: Main :: run ( example ); возврат 0 ; }
Вышеупомянутая программа создаст окно с кнопкой «Hello World». При нажатии кнопки на стандартный вывод выводится сообщение «Hello world».
Программа запускается с помощью следующих команд:
$ G ++ -std = C ++ 11 * .cc -o пример ` PKG-CONFIG gtkmm-3.0 --cflags --libs ` $ ./example
Обычно это делается с помощью простого make-файла .
Приложения
Некоторые известные приложения, использующие gtkmm, включают:
- Амсинт [2]
- Кадабра (компьютерная программа) [3]
- Inkscape Рисование векторной графики.
- Horizon EDA - пакет автоматизации электронного проектирования для проектирования печатных плат.
- PDF Slicer Простое приложение для извлечения, объединения, поворота и изменения порядка страниц документов PDF.
- Workrave помогает в восстановлении и предотвращении RSI.
- Системный монитор Gnome [4]
- Gigedit [5]
- Инструмент разбиения диска GParted .
- Графический интерфейс Nemiver для отладчика GNU gdb.
- Инструменты PulseAudio : pavucontrol, [6] paman, [7] paprefs [8] pavumeter, [9]
- RawTherapee [10]
- Организатор документов GNOME Referencer и менеджер библиографии
- Seq24 [11]
- Synfig Studio [12]
- Линтезия [13]
- MySQL Workbench [14] Графический интерфейс администратора базы данных.
- Цифровая звуковая рабочая станция (DAW) Ardor с открытым исходным кодом для Linux и MacOS.
- Настольное приложение для создания заметок Gnote .
- VisualBoyAdvance [15]
- И VMware Workstation, и VMware Player используют gtkmm для своих портов Linux.
Смотрите также
- GTK
- wxWidgets
- ФЛТК
- Набор инструментов FOX
- Qt
- VCF
Рекомендации
- ^ FAQ по gtkmm
- ^ "Debian - Подробная информация о пакете amsynth в jessie" . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете cadabra в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете gnome-system-monitor в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете gigedit в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете pavucontrol в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете paman в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о папках пакета в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете pavumeter в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете rawtherapee в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете seq24 в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете synfigstudio в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете linthesia в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете mysql-workbench в jessie» . Проверено 6 марта 2017 .
- ^ «Debian - Подробная информация о пакете visualboyadvance-gtk в jessie» . Проверено 6 марта 2017 .
Внешние ссылки
- Официальный веб-сайт
- Бинарные файлы gtkmm для Windows на SourceForge.net