Mi az a grafikus keretrendszer ?

É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.

Erre léteznek már viszonylag régóta úgynevezett felület tervező programok is, tehát még elképzelnünk sem kell, egyből el is készíthetjük az ablakokat.

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).

 

Végül 1993 -ban kitört a béke a két UNIX tábor között és megszületett a Common Open Software Environment (COSE).

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.

 


Vélemény, hozzászólás?

Translate »