Udalosti na pohyb myši
- pohyb myši so stlačeným ľavým tlačidlom: <B1-Motion> (dvojklik: <Double-Button-1>)
- pohyb myši so stlačeným pravým tlačidlo: <B3-Motion>
Príklad_1: Panák
import tkinter
import random
canvas=tkinter.Canvas(width=400, heigh=400)
canvas.pack()
def pohyb(suradnice):
x=suradnice.x
y=suradnice.y
canvas.create_oval(x-10,y-10,x+10,y+10,fill=random.choice(('green','red','yellow','blue')))
canvas.bind('<B1-Motion>',pohyb)
Udalosť na stláčanie klávesnice
- pre udalosť na stlačenie klávesnice používame príkaz: canvas.bind_all('kláves',funkcia)
- kláves je konkrétny znak na klávesnici, napr. "s", "t", "a", alebo možeme použiť aj udalosť pre tieto klávesy:
'<Up>' = šípka hore
'<Down>' = šípka dole
'<Left>' = šípka vľavo
'<Right>' = šípka vpravo
'<space>' = medzerník
'<Return>' = enter
Príklad_2: program pri stlačení klávesy T, napíšte na ľubovoľné miesto text Python a pri stlačení klávesy S nakreslí na ľubovoľné miesto štvorec:
import tkinter
import random
canvas=tkinter.Canvas(width=400, heigh=400)
canvas.pack()
def text(udalost):
x=random.randrange(50,350)
y=random.randrange(50,350)
canvas.create_text(x,y,text='Python')
def kruzok(udalost):
x=random.randrange(50,350)
y=random.randrange(50,3tttt50)
canvas.create_oval(x,y,x+5,y+5,fill=random.choice(('green','yellow','red')))
canvas.bind_all('t',text)
canvas.bind_all('s',kruzok)
Posun šipky VĽAVO, VPRAVO, HORE, DOLE
import tkinter
canvas=tkinter.Canvas(width=500, heigh=500)
canvas.pack()
nadpis = canvas.create_text(200,200,text='NADPIS')
canvas.move(nadpis,5,0)
def posun_vpravo(udalost):
canvas.move(nadpis,5,0)
def posun_vlavo(udalost):
canvas.move(nadpis,-5,0)
def posun_hore(udalos):
canvas.move(nadpis,0,-5)
def posun_dole(udalost):
canvas.move(nadpis,0,5)
canvas.bind_all('<Right>',posun_vpravo)
canvas.bind_all('<Left>',posun_vlavo)
canvas.bind_all('<Up>',posun_hore)
canvas.bind_all('<Down>',posun_dole)
Časovač
Príklad_3: Červený kríž
import tkinter
import random
canvas=tkinter.Canvas(width=400, heigh=400)
canvas.pack()
def cerveny_kriz():
x=random.randrange(400)
y=random.randrange(400)
if 100<x<300 or 100<y<300:
canvas.create_oval(x,y,x+20,y+20, fill='red')
for i in range(5000):
cerveny_kriz()
Príklad_4: Červený kríž pomocou časovača
import tkinter
import random
canvas=tkinter.Canvas(width=400, heigh=400)
canvas.pack()
def cerveny_kriz():
x=random.randrange(400)
y=random.randrange(400)
if 100<x<300 or 100<y<300:
canvas.create_oval(x,y,x+20,y+20, fill='red')
for i in range(5000):
cerveny_kriz()
canvas.update()
canvas.after(10)
Príklad_5: Padajúca červená gulička
Príklad_6: Vytvorte program, ktorý pri stlačení klávesy "m" napíšte tvoje krstné meno na ľubovoľné súradnice a pri stlačení klávesy "h" nakreslí na ľubovoľné miesto žltú hviezdičku.
Príklad_7: Vytvorte program, ktorý postupne vykreslí na kresliace plátno nórsku vlajku
Príklad_8: Vytvorte program, kde sa bude pohybovať prasiatko zľava do prava po kresliacom plátne