гткмм
Репозиторий | |
---|---|
Написано в | С++ |
Платформа | ГТК |
Тип | Языковая привязка |
Лицензия | Меньшая стандартная общественная лицензия GNU |
Веб-сайт | www |
gtkmm (ранее известный как gtk-- или gtk минус минус [1] ) — официальный интерфейс C++ для популярной графического интерфейса библиотеки GTK . gtkmm — бесплатное программное обеспечение , распространяемое по лицензии GNU Lesser General Public License (LGPL).
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 <gtkmm/window.h>#include <gtkmm/button.h>// Derive a new window widget from an existing one.// This window will only contain a button labelled "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 the title of the window. set_title("Hello World"); // Add the member button to the window, add(hello_world); // Handle the 'click' event. hello_world.signal_clicked().connect([] () { std::cout << "Hello world" << std::endl; }); // Display all the child widgets of the window. show_all_children();}
//main.cc#include <gtkmm/main.h>#include "HelloWorldWindow.h"int main(int argc, char *argv[]) { // Initialization Gtk::Main kit(argc, argv); // Create a hello world window object HelloWorldWindow example; // gtkmm main loop 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-файла .
Приложения
[ редактировать ]Некоторые известные приложения, использующие gtkmm, включают:
- Амсинт [2]
- Кадабра (компьютерная программа) [3]
- Inkscape Векторный графический рисунок.
- Horizon EDA — пакет автоматизации электронного проектирования для проектирования печатных плат.
- PDF Slicer Простое приложение для извлечения, объединения, поворота и изменения порядка страниц PDF-документов.
- Workrave Помогает в восстановлении и профилактике RSI.
- Системный монитор Gnome [4]
- Gigedit [5]
- Инструмент для разбиения диска GParted .
- Графический интерфейс Nemiver для отладчика GNU gdb.
- Инструменты PulseAudio : pavucontrol, [6] дядя, [7] папрефс [8] павуметр, [9]
- RawTherapy [10]
- Организатор документов GNOME Referencer и менеджер библиографии
- Seq24 [11]
- Синфиг Студия [12]
- Линтезия [13]
- MySQL рабочая среда [14] Графический интерфейс базы данных администратора.
- Рабочая станция цифрового аудио Ardor с открытым исходным кодом (DAW) для Linux и MacOS.
- Настольное приложение Gnote для создания заметок.
- VisualBoyAdvance [15]
- VMware Workstation и VMware Player используют gtkmm для своих портов Linux.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Часто задаваемые вопросы по 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 — Подробная информация о пакете paprefs в jessie» . Проверено 6 марта 2017 г.
- ^ «Debian — Подробная информация о пакете pavumeter в jessie» . Проверено 6 марта 2017 г.
- ^ «Debian — Подробная информация о пакете rawtherapee в jessie» . Проверено 6 марта 2017 г.
- ^ «Debian — Подробная информация о пакете seq24 в jessie» . Проверено 6 марта 2017 г.
- ^ «Debian — Подробная информация о пакете Synfigstudio в Джесси» . Проверено 6 марта 2017 г.
- ^ «Debian — Подробная информация о пакете linthesia в jessie» . Проверено 6 марта 2017 г.
- ^ «Debian — Подробная информация о пакете mysql-workbench в jessie» . Проверено 6 марта 2017 г.
- ^ «Debian — Подробная информация о пакете Visualboyadvance-gtk в Jessie» . Проверено 6 марта 2017 г.