Gtkmm

Zrzut ekranu z przykładowego programu wykorzystującego bibliotekę gtkmm

gtkmm – biblioteka, będąca interfejsem programistycznym dla biblioteki graficznej GTK+, który przenosi mechanizmy działania napisanej w języku C biblioteki GTK+ do C++. Zadaniem tej biblioteki jest ułatwienie programowania interfejsu graficznego poprzez obsługę widgetów jako obiektów z własnymi metodami. Dostępne są wszystkie mechanizmy programowania obiektowego, takie jak dziedziczenie, polimorfizm, przestrzenie nazw i inne ułatwienia wprowadzone przez język C++. Biblioteka wykorzystuje mechanizm sygnałów i slotów (konkretnie libsigc++) do obsługi zdarzeń, takich jak np. kliknięcie myszką.

Gtkmm należy traktować jako „nakładkę” (wzorzec projektowy adapter) na bibliotekę GTK+, która nie wnosi nowej funkcjonalności elementów graficznych, a jedynie umożliwia sterowanie nimi z poziomu języka C++. Z gtkmm można korzystać zarówno pisząc bezpośrednio kod w języku C++, jak i poprzez wykorzystanie programu Glade, który umożliwia graficzne tworzenie interfejsów i generuje kod gtkmm z wykorzystaniem biblioteki libglademm, umożliwijącej dynamiczne generowanie interfejsu użytkownika na podstawie opisu w formacie XML.

Obecnie biblioteka gtkmm działa na wielu systemach operacyjnych, między innymi na systemach z rodziny Unix, Linux, OS X, BSD, Solaris i Windows.

Nazwa biblioteki powstała przez dodanie do nazwy GTK dwóch liter „m”, które oznaczają dwa minusy. GTK+ ma już w swojej nazwie znak „+”, więc autorzy wybrali dla odróżnienia dwa znaki „-”. Pierwotnie nazwa biblioteki była zapisywana Gtk--, ale problemy z obsługą takiej nazwy przez wyszukiwarki spowodowały, że zastąpiono ją wersją z dwoma „m”.

Przykładowy kod

Przykładowy kod wyświetlający puste okienko:

#include <gtkmm.h>

class Okno : public Gtk::Window
{
public:
  Okno()
  {
    set_title("Gtkmm");
    set_position(Gtk::WIN_POS_CENTER);
  }
  virtual ~Okno() { }
};

int main(int argc, char* argv[])
{
  Gtk::Main kit(argc, argv);

  Okno okno;
  kit.run(okno);

  return 0;
}

Zobacz też

Linki zewnętrzne

  • Oficjalna strona projektu gtkmm
  • Programming with gtkmm (ang.)
  • p
  • d
  • e
Biblioteki graficzne
Niskopoziomowe
Wysokopoziomowe
Na AmigaOS
  • BOOPSI
  • MUI
  • ReAction GUI
  • Zune
Na macOS
  • Carbon
  • Cocoa
  • MacApp
  • MacZoop
  • PowerPlant
Na Windows
Na Unix,
bez X11
  • Athena (Xaw)
  • InterViews
  • LessTif
  • Motif
  • OPEN LOOK
Wieloplatformowe,
według języka
CLI
  • Gtk#
  • Moonlight
  • Tao
C
Objective-C
  • GNUstep
C++
Flash
  • Apache Flex
Java
Desktop
Web
JavaScript
Common Lisp
  • CAPI
  • Common Graphics
  • CLIM
  • Ltk
  • McCLIM
Pascal
  • LCL
Object Pascal
  • CLX
  • fpGUI
  • IP Pascal
  • LCL
Perl
  • wxPerl
  • Perl/Tk
PHP
Python
Ruby
  • Shoes
  • QtRuby
XML
  • Ample SDK
  • CougarXML
  • GladeXML
  • Lively Kernel
  • Pyjamas
  • Rialto Toolkit
  • XAML
  • XUI
  • XUL
  • Wt