Érdekes és már sokan találkoztak vele, de valójában csak kevesen tudják, hogy mire is való és mi is pontosan a grafikus keretrendszer, angolul a GUI (Graphical User Interface) Framework.
Az informatika hajnalán még egyszerű parancssorról beszélünk és karakteres megjelenítésről.
Eleinte ezekkel nem is volt gond. Az ember begépelt egy parancsot, amit azután a számítógép végrehajtott.
Ahogy az IT ipar fejlődött, idővel megjelentek a jobb minőségű kijelzők és a gépek is lehetővé tették, nem csupán betűk, hanem immáron ábrák, rajzok, képek kirajzolását.
Viszonylag hamar felvetődött egy fejlettebb felület készítése, ahol már nem csupán a billentyűzettel, hanem valamilyen mutató eszközzel is lehetett különböző funkciókat elérni, ilyen volt például a Xerox és később az Apple által bemutatott egér.
Amíg egy parancssoros, azaz konzolos programot gyakorlatilag egyszerű elkészíteni, hiszen csak a funkció számít és a végeredmény, addig az új lehetőség jóval komplexebb tudást igényelt és sokszor egész csapatok dolgoztak egy adott alkalmazáson.
Itt jött be a képbe egy program esetén a dizájn, a felület színe, esztétikai hatása, az egyes funkciók kialakítása, menük elhelyezkedése és a különböző betűtípusok.
A nehézséget igazából nem is a terverzés jelentette, hanem az, hogy minden egyes funkciót, gombot és ablakot meg kellett rajzolni, le kellett programozni a nulláról és ez bizony rengeteg időt von el a tényleges, feladat specifikus programozástól, ahol a készítők az érdemi munkával foglalkozhatnak.
Hamar nyilvánvalóvá vált, hogy szükség lesz egy olyan egységes eszközkészletre, amit mindenki tud használni és mindenki hozzáférhet, így nem kell mindent a nulláról készíteni.
Ezek az úgynevezett ablakkezelő rendszerek alap egységei. Olyan előre definiált bigyók és izék, amivel soha többé nem kell a fejlesztőknek kínlódni, csak egyszerűen beírták a programba, hogy buttton, window, textarea és már készíthették is a menüt, ablakokat, kiosztást úgy, hogy egy kicsit sem kellett foglalkozni azzal, hogyan kell egy menüt ténylegesen leprogramozni.
Ezek a grafikus keretrendszerek (GUI widget toolkit -ek) gyakorlatilag készen adták az felülethez szükséges elemeket, csak össze kellett őket legózni.
A nyolcvanas évek végére a gigacégek, Sun Microsystems,AT&T, Xerox kialakítottak Open Look néven egy GUI -t a az általuk üzemeltetett UNIX munkaállomásokra és itt már megjelennek az első widget toolkitek, az XView (nem összetévesztendő a képnézővel) és az OLIT (OPEN LOOK Intrinsics Toolkit).
A cégóriások ellenlábasai és mindenki más, akinek nem tetszett a „nagyok” hegemóniája, összefogtak és megalakították saját szervezetüket Open Software Foundation (OSF) néven és kiadták a Motif GUI -t.
A Motif GUI is rendelkezett természetesen saját fejlesztői eszközkészlettel, ez volt a Motif widget toolkit, saját ablakkezelő managerrel, ez volt a Motif Window Manager (MWM).
Ennek keretében mindenki hozta a saját munkáját és közösen kiadták az első, egységes ablakkezelő környezetet, ami a Common Desktop Environment (CDE) nevet kapta és a Motif widget toolkit alapjain nyugodott.
Természetesen az ezt követő években megjelenik a linux és egyre nagyobb népszerűségnek örvend, egyre újabb disztribúciók jelennek meg és számtalan ablakkezelő és keretrendszer.
Napjainkra érdekes módon szinte csak két nagyob projekt ismert a nyílt forrású szoftverek felhasználói előtt, ebből az egyik egy rajzoló és képszerkesztő program eszköztára volt, ez a( Gnu Image Manipulator) GIMP Toolkit, azaz ismertebb nevén a GTK és a másik pedig a Qt.
A GTK weboldala: https://www.gtk.org/
A Qt projekt a GTK -val ellentétben nem teljesen ingyenes, érdemes átnézni a vonatkozó jogi részeket, csak a nyílt forrású projektek részére szabadon felhasználható: https://www.qt.io/
Érdemes azonban megemlíteni egy harmadikat mindenképpen, az Enlightenment Foundation Libraries (EFL) az Enlightenment ablakkezelő csapatának saját fejlesztése.
Link: https://www.enlightenment.org/about-efl
Egy másik, szintén eléggé ismert projekt a wxWidgets (korábban wxWindows) : https://wxwidgets.org/
A Fast Light Toolkit (FLTK) weboldala, szintén elég ismert: https://www.fltk.org/
Tehát egyszerűen összefoglalva a dolgot, ha valahol azt olvassuk, hogy GTK, vagy Qt, vagy TCL/Tk alapú valami, akkor az annyit tesz, hogy ezen eszközök valamelyikével legózták össze és nem a nulláról írták meg az egész alkalmazást.