Это старая версия Информатика/Кружок/Tkinter за 09.01.2017 18:00:39.

Tkinter

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


from random import *
from tkinter import *

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

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

from tkinter import *

size = 600
x0 = 300
y0 = 300
r = 25
dx = 2
dy = 2

def move():
    global x0, y0
    x0 += dx
    y0 += dy
    canvas.coords(circle, x0-r, y0-r, x0+r, y0+r)
    canvas.update()
    canvas.after(50, move)

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

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


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

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

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

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

canvas.coords(circle) – возвращает кортеж из четырех чисел (координаты прямоугольника)