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.
az órán elkészített keretben mozgatható kép
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.
A fenti videón látható mozgatható kép kódja:
from tkinter import *
def key_pressed(event):
cat_coord = canvas.coords(cat)
if event.keysym == 'Left' and cat_coord[0] > 5:
canvas.move(cat, -5, 0)
if event.keysym == 'Right' and cat_coord[0] <= 455:
canvas.move(cat, 5, 0)
if event.keysym == 'Up' and cat_coord[1] > 5:
canvas.move(cat, 0, -5)
if event.keysym == 'Down' and cat_coord[1] <= 335:
canvas.move(cat, 0, 5)
root = Tk()
root.title('Mozgatás')
canvas = Canvas(master=root, width=480, height=360, bg='burlywood1')
canvas.pack()
bg_image = PhotoImage(file='bg.png')
cat_image = PhotoImage(file='cat.png')
bg = canvas.create_image(0,0, image=bg_image)
cat = canvas.create_image(240,180, image=cat_image)
root.bind('<KeyPress>', key_pressed)
root.mainloop()
