gtkmm
gtkmm is a C++ wrapper for GTK, a library used to create graphical user interfaces. It is licensed using the LGPL license, so you can develop open software, free software, or even commercial non-free software using gtkmm without purchasing licenses.
gtkmm was originally named gtk-- because GTK was originally named GTK+ and had a + in the name. However, as -- is not easily indexed by search engines, the package generally went by the name gtkmm, and that's what we stuck with.
- 1.2.1. Why use gtkmm instead of GTK?
- 1.2.2. gtkmm ve srovnání s Qt
- 1.2.3. gtkmm jen obaluje GTK+
1.2.1. Why use gtkmm instead of GTK?
gtkmm umožňuje psát kód pomocí běžných technik C++, jako je zapouzdření, dědičnost a polymorfizmus. Jako programátor v C++ jste již nejspíše zjistili, že to vede k jasnějšímu a přehlednějšímu programovému kódu.
gtkmm je také typově bezpečnější, takže kompilátor může odhalit chyby, které by při použití C šli odhalit jen za běhu. Používání konkrétnějších typů také zpřehledňuje celé API, protože můžete zjistit, které typy by měly být použity, jednoduše pohledem do deklarace metody.
Inheritance can be used to derive new widgets. The derivation of new widgets in GTK C code is so complicated and error prone that almost no C coders do it. As a C++ developer you know that derivation is an essential Object Orientated technique.
Member instances can be used, simplifying memory management. All GTK C widgets are dealt with by use of pointers. As a C++ coder you know that pointers should be avoided where possible.
gtkmm involves less code compared to GTK, which uses prefixed function names and lots of cast macros.
1.2.2. gtkmm ve srovnání s Qt
Nejbližší konkurencí gtkmm je Qt od Trolltechu, takže se na něj pojďme podívat blíže.
Vývojáři gtkmm mají tendenci protěžovat gtkmm před Qt, protože gtkmm dělá věci více přirozeně jazyku C++. Qt pochází z dob, kdy C++ a standardní knihovny nebyly plně standardizované, nebo dobře podporované kompilátory. Proto duplikuje plno věcí, které dnes již najdete ve standardních knihovnách, jak třeba kontejnery a typové informace. Nejdůležitější je, že Trolltech upravil jazyk C++, aby poskytovat signály, takže třídy Qt nejde jednoduše používat s jinými třídami než z Qt. gtkmm je schopné používat standardní C++ k poskytování signálů, bez změn v jazyce C++. Další rozdíly najdete popsané na stránce s častými dotazy a odpověďmi.
1.2.3. gtkmm jen obaluje GTK+
gtkmm is not a native C++ toolkit, but a C++ wrapper of a C toolkit. This separation of interface and implementation has advantages. The gtkmm developers spend most of their time talking about how gtkmm can present the clearest API, without awkward compromises due to obscure technical details. We contribute a little to the underlying GTK code base, but so do the C coders, and the Perl coders and the Python coders, etc. Therefore GTK benefits from a broader user base than language-specific toolkits - there are more implementers, more developers, more testers, and more users.