Репозиторий |
|
---|---|
Написано в | С++ |
Платформа | ГТК |
Тип | Языковая привязка |
Лицензия | Стандартная общественная лицензия ограниченного применения GNU |
Веб-сайт | gtkmm.gnome.org |
gtkmm (ранее известный как gtk-- или gtk minus minus [1] ) — официальный интерфейс C++ для популярной библиотеки графического интерфейса пользователя GTK . gtkmm — это свободное программное обеспечение, распространяемое по лицензии GNU Lesser General Public License (LGPL).
gtkmm позволяет создавать пользовательские интерфейсы либо в коде, либо с помощью Glade Interface Designer , используя класс Gtk::Builder. Другие функции включают типобезопасные обратные вызовы , полный набор графических элементов управления и расширяемость виджетов через наследование .
Поскольку gtkmm является официальным интерфейсом C++ библиотеки графического интерфейса пользователя GTK , программисты на C++ могут использовать общие методы ООП , такие как наследование , и специфичные для C++ возможности, такие как STL (фактически, многие интерфейсы gtkmm, особенно для контейнеров виджетов , разработаны так, чтобы быть похожими на стандартную библиотеку шаблонов (STL)).
Основные возможности gtkmm перечислены ниже:
//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 (); защищено : Gtk :: Кнопка 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 пример ` pkg-config gtkmm-4.0 --cflags --libs ` $ ./example
Обычно это делается с помощью простого make-файла .
Вот некоторые известные приложения, использующие gtkmm: