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ší.
- Podrobnosti
- Zobrazení: 262
Pro 4.6 a 6.8
import tkinter # import modulu s graf. funkcemi
okno = tkinter.Tk() # okno
platno = tkinter.Canvas() # vytvoř plátno
platno.pack() # umístí plátno do okna
# Definice funkcí____________
def palka(souradnice): # souradnice mají složku x a y
x1 = souradnice.x # přiřadním hodnoty do proměnných
y1 = souradnice.y
x2=x1 # další proměnné pro vytvoření line
y2=y1+50
platno.create_line(x1,y1,x2,y2,fill="red",width="5")
def kolecko(souradnice): # souradnice mají složku x a y
x1 = souradnice.x
y1 = souradnice.y
x2 = x1+50
y2 = y1+50
platno.create_oval(x1,y1,x2,y2,fill="blue",width="1")
# Hlavní program______
platno.bind("<Button-1>",palka) # bind - svážu událost stisku tlačítka s voláním funkce
platno.bind("<Button-2>",kolecko)# zapisuje se pouze název fce bez závorek
okno.mainloop() # hlavní smyčka programu
- Podrobnosti
- Zobrazení: 242