Сравнение версий Информатика / Кружок / Tkinter




← Предыдущая правка
Следующая правка →

Много случайных кругов


from random import *
from tkinter import *

size = 6
root = Tk()
canvas = Canvas(root, width=size, height=size)
canvas.pack()
diapason = 
while diapason < 1:
    colors = choice(['aqua', 'blue', 'fuchsia', 'green', 'maroon', 'orange',
                  'pink', 'purple', 'red','yellow', 'violet', 'indigo', 'chartreuse', 'lime',])
    x = randint(, size)
    y = randint(, size)
    d = randint(, size/5)
    canvas.create_oval(x, y, x+d, y+d, fill=colors)
    root.update()
    diapason += 1
root.mainloop()		

Движущийся круг

from tkinter import *

size = 6
x = 3
y = 3
r = 25
dx = 2
dy = 2

def move():
    global x, y
    x += dx
    y += dy
    canvas.coords(circle, x-r, y-r, x+r, y+r)
    canvas.update()
    canvas.after(5, move)

root = Tk()
canvas = Canvas(root, width=size, height=size)
canvas.pack()
circle = canvas.create_oval(x-r, y-r, x+r, y+r, fill='red')
root.after(5, move)
root.mainloop()		

Обработка нажатий на клавиатуру

# Написать функцию, обрабатывающую нажатие на клавишу
def key_q_pressed(event):
    print("Pressed Q")

def key_left_pressed(event):
    print("Pressed Left")

# Теперь повесим обработку события нажатия на клавишу на вызов функции
root.bind("q", key_q_pressed)
root.bind("<Left>", key_left_pressed)		

Обработка событий мыши

def left_button_clicked(event):
    print(event.x, event.y)

root.bind("<Button-1>", left_button_clicked)		

Как получить размеры круга

<!--markup:2:end-->
canvas.coords(circle) - возвращает кортеж из четырех чисел (координаты прямоугольника)
<!--markup:2:begin-->		

Как создать прямоугольник

rect = canvas.create_rectangle(x, y, x1, y1) - возвращает объект "прямоугольник"
<!--markup:2:begin-->		
<!markup:2:end>

Как удалить объект на canvas

canvas.delete(rect) # передаваемый параметр - ссылка на удаляемый объект
<!--markup:2:begin-->		

Как изменить цвет объекта на canvas

canvas.itemconfig(rect, fill="blue") # передаваемый параметр - ссылка на объект, цвет которого меняется		
<!markup:2:end>

Документация

http://effbot.org/tkinterbook/
http://python-textbok.readthed[...]GUI_Programming.html
http://cipcnet.insa-lyon.fr/tcc/help/pubs/tkinter/

===Что можно писать?===
* Арканоид
* Pong (теннис)
* Крестики-нолики с силой тяжести
* Змейка
* Игра «Жизнь»
* Реверси
* Xonix