Vytisknout

K práci s grafikou potřebujeme grafické funkce. Funkce (třídy a jejich metody) jsou sdruženy v knihovnách, modulech. Moduly pro práci s grafikou jsou např. Tkinter, Pygame, Pyglet, Qt (PyQt) atd. Modul musíme na začátku programu importovat (import tkinter nebo from tkinter import * - rozdíly).

Základní postup:

Import modulu – vytvoření instance okna - vytvoření instance třídy Canvas – volání metod Canvas pro vykreslení tvarů – volání hlavní smyčky událostí (smyčka běží dokola a zpracovává frontu událostí). Canvas je tzv. widget, kromě Canvas můžeme do okna umístit i další prvky (Button, Label atd.)

import tkinter
root=tkinter.Tk()     # instance třídy - vytvoření okna
canvas = tkinter.Canvas(width=600,height=400, bg="red") # instance třídy, init parametry
canvas.pack()   #umístí canvas
canvas.create_line(10,10,200,200) # metoda pro vytvoření úsečky s argumenty
canvas.create_text(50,100,text="AHOJ")
root.mainloop()       # hlavní okno v nekonečné smyčce, čeká na události

 

Systém souřadnic pro kreslení v modulu tkinter

Souřadnice x,y                 0,0 je nahoře vlevo        

x vodorovně, hodnota stoupá doprava    y svisle, hodnota stoupá shora dolů:

 

Při tvorbě instance canvas můžeme zadat init parametry width=600, height=400, bg – pozadí a další

Objekty na plátno vykreslujeme voláním metod canvas.create_

create_line()		# úsečka
create_line(x _poč,y_poč, x_kon, y_konc, width, fill)
creale_rectangle(x_poč,y_poč, x_kon, y_konc, width, fill, , outline)# obdélník, čtverec
creale_oval(x_poč,y_poč, x_kon, y_konc, width, fill, outline)	    # elipsa, kruh
create_polygon(x_poč,y_poč… x_kon, y_konc, width, fill)	            # mnohoúhelník
create_text(50,120,text="AHOJ",fill="darkblue",font="Times 20 italic bold") # text
create_arc()		# oblouk, kruhová výseč

Argumenty metod (mají-li v smysl):

x,y – počáteční a koncové souřadnice, u plošných obrazců levý horní a pravý dolní roh obrazce, nebo pomyslného obdélníku, ve které je obrazec vepsán. U polygonu souřadnice každého bodu.

width – šířka obrysu v pixelech

fill – barva výplně (fill="#476a42", fill=“blue“)

outline – barva obrysu

font – druh písma, velikost, řez písma (font="Times 20 italic bold)

Všechny argumenty nemusí být povinné. Existují i další.

Zobrazení: 264