A grafikus felhasználói felület (angolul Graphical User Interface, röviden GUI) a számítástechnikában olyan, a számítógép és ember közti kapcsolatot megvalósító elemek összessége (Human machine interface, HMI), melyek a monitor képernyőjén szöveges és rajzos elemek együtteseként jelennek meg. A grafikus felhasználói felületeken alapvető szerepe van a mutatóeszközök, például az egér használatának, amelyekkel a grafikus felület elemei intuitív módon, a fizikai világ egyfajta modelljeként kezelhetők.

A leggyakoribb grafikus felhasználói elemek az ablakok, menük, választógombok, jelölőnégyzetek és ikonok, összefoglaló nevükön widgetek, valamint a mutatóeszközhöz kapcsolódó egérkurzor. 

Widget

A widget angol nyelvű szóösszevonás, tagjai: window (ablak) és gadget (kb. kütyü). Az egyes digitális felületeken (pl. programok, alkalmazások kezelőfelületein, website-ok felhasználói és adminisztrációs kezelőfelületein stb.) megjelenő kisebb, kompakt funkcionális elemek (pl. nyomógomb, checkbox, hírgyűjtő ablak stb.) gyűjtőneve. 

A tkinter, a Python beépített grafikus könyvtára

A grafikus könyvtár (library) olyan szoftvereszközkészlet, amely különböző GUI-elemek funkcionalitását meghatározó osztályok gyűjteményét tartalmazza. Ezek a grafikus könyvtárak általában C/C++ nyelven íródnak. Sokukat importálható modulok formájában átültették Pythonra. A tkinter widgeteknek 15 alaposztálya létezik:

Button Klasszikus nyomógomb, valamilyen utasítás végrehajtásának az előidézésére használják.
Canvas Különböző grafikus elemek elhelyezésére szolgáló felület. Rajzolásra, grafikus szerkesztők létrehozására és testre szabott widgetek implementálására is használhatjuk.
Checkbutton Egy jelölőnégyzet, aminek két különböző állapota lehet (a négyzet ki van jelölve vagy nincs kijelölve). Egy klikkelés a widgeten állapotváltozást idéz elő.
Entry Adatbeviteli mező, amibe a felhasználó bármilyen szöveget beírhat.
Frame Egy téglalap alakú felület az ablakban, ahova más widgeteket tehetünk. Ez a felület színes lehet. Szegélye is lehet.
Label Valamilyen szöveg (vagy címke) (esetleg egy kép).
Listbox A felhasználónak  általában valamilyen doboz formájában  felajánlott választéklista. A Listboxot úgy is konfigurálhatjuk, hogy vagy egy rádiógomb vagy egy jelölőnégyzet sorozatot tartalmazzon.
Menu Menü. Lehet címsorhoz kapcsolódó legördülő menü, vagy egy kattintás után akárhol feljövő úszó « pop up » menü.
Menubutton Menügomb, amit legördülő menük implementálására használnak.
Message Szöveg kiírását teszi lehetővé. A Label widget egy változata, ami lehetővé teszi, hogy a kiírt szöveg automatikusan egy bizonyos mérethez, vagy szélesség/magasság arányhoz igazodjon.
Radiobutton (Egy fekete pont egy kis körben.) Egy változó lehetséges értékeit reprezentálja. Az egyik rádiógombra való kattintás az annak megfelelő értéket adja a változónak.
Scale Egy kurzornak egy skála mentén való mozgatásával teszi láthatóvá egy változó értékének a változtatását.
Scrollbar A görgető sort más widgetekhez (Canvas, Entry, Listbox, Text) kapcsolva használhatjuk.
Text Formázott szöveg kiírása. A felhasználónak is lehetővé teszi a kiírt szöveg formázását. Képeket is be lehet szúrni.
Toplevel Egy külön, felülre kiírt ablak.

Az itt következő leírásból a tkinter használatát ismerheted meg, a GUI-alapú Python programok fejlesztéséhez. A tkinter a Fredrik Lundh által kifejlesztett Tcl-Tk GUI eszközkészlet Python portja, annak Pythonra optimalizált változata. Ezt a modult a Python szabványos disztribúciói tartalmazzák minden platformon, Windows, Linux, macOS. 

A cikk folytatása: http://www.malnasuli.hu/python/kiindulo-gui-alkalmazas-az-elso-ablakunk-tkinter-2-resz/