Python vo svojej základnej verzii nemá aparát na kreslenie :( Existuje však systém balíčkov (package) - kusov kódu, ktoré už niekto vytoril a dáva nám ho k dispozícii. Balíčky rozširujú množinu príkazov, ktoré môžeme v našom programe použiť. Jedným z nich je balíček na kreslenie - tkinter. Ak ho chceme používať, musíme na začiatok nášho programu napísať niekoľko riadkov (viď nižšie). Vytvorte program len s týmito riadkami a spustite. Mali by ste vidieť otvorené "plátno" - canvas, v ktorom ale zatiaľ nič nie je.
import tkinter # chceme používať balíček tkinter
platno = tkinter.Canvas() # balíček použijeme na vytvorenie plátna
platno.pack() # pripraví plátno na používanie
# 'platno' je premenná, pomenovať ju môžete ľubovoľne
Súradnicový systém funguje v canvas-e a Python-e inak, ako sme zvyknutí z matematiky. Bod [0, 0] je umiestnený v ľavom hornom rohu plochy, os
suradnicovy system v canvas-e
Pri vytváraní plochy na kreslenie (canvas) môžeme s použitím parametrov špecifikovať, aká veľká bude plocha, na ktorú budeme kresliť. Použijeme pri tom pomenované parametre width a height. Pozri sa na príklad ich použitia nižšie.
canvas = tkinter.Canvas(width=300, height=100)
Obdĺžniky kreslíme príkazom:
canvas.create_rectangle(50, 70, 320, 200)
Argumenty vyjadrujú pozície dvoch bodov, ktoré jednozančne určujú polohu a rozmery obdĺžnika - jeho dva protiľahlé vrcholy. Oba z týchto bodov majú svoje súradnice, ktoré pozostávajú z dvoch zložiek - x a y. Jednotlivé čísla - argumenty v príkaze canvas.create_rectangle sú: x-ová súradnica ľavého horného rohu, y-ová súradnica ľavého horného rohu, x-ová súradnica pravého dolného rohu a y-ová súradnica pravého dolného rohu obdĺžnika. Náš príkaz teda nakreslil obdĺžnik s ľavým horným rohom so súradnicami [50, 70] a pravým dolným rohom so súradnicami [320, 200].
Ovál vznikne prepísaním slova "rectangle" na "oval" v príkaze create_rectangle(). Takýto ovál je vpísaný do obdĺžnika, ktorý by pôvodne vznikol.
canvas.create_rectangle(50, 70, 320, 200)
canvas.create_oval(50, 70, 320, 200, fill="purple")
S použitím pomenovaného parametra môžeme ľahko nastaviť farbu...
# obdĺžnikom nastavujeme farbu výplne pomocou parametra 'fill'
canvas.create_rectangle(10, 10, 200, 400, fill="orange")
# podobne to funguje pre ovály
canvas.create_oval(10, 10, 200, 400, fill="skyblue")
# tu fungujú názvy farieb ako v css...
# fajnšmekri môžu definovať farbu hexadecimálne v RGB
canvas.create_rectangle(90, 30, 150, 90, fill='#FF3399')
# pri vytváraní canvas-u môžeme nastaviť farbu pozadia pomocou parametra 'bg'
canvas = tkinter.Canvas(width=400, height=200, bg="yellow")
import tkinter
canvas = tkinter.Canvas(bg="skyblue")
canvas.pack()
canvas.create_oval(10, 10, 110, 110, fill="yellow")
# prve dva parametre su [x,y] suradnce stredu textu
canvas.create_text(60, 60, text="slnko")