Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Лабораторная работа №6
- Задание: Исходно на форме находится равнобедренный треугольник с основанием внизу 400 пикселей. При запуске движения основание начинает уменьшаться со
- скоростью 50 пикселей/сек. и шагом в 1 пиксель. После превращения фигуры в
- вертикальную линию начинается обратное движение, но основание теперь
- находится вверху. При следующем возврате к вертикальной линии снова основание
- внизу. Запуск и остановка движения – клавиша SpeedButton.
- Структура проекта: lab6.py
- Форма:
- Листинг программы:
- from tkinter import *
- root = Tk()
- up = True
- # Функция движения
- def move():
- global x1, x2, x3, y1, y2, y3, up
- if v.get():
- if up and c.coords(triangle)[0] < 400:
- x1 += 1
- x3 -= 1
- c.coords(triangle, x1, y1, x2, y2, x3, y3)
- else:
- up = False; y1 = 200; y2 = 600; y3 = 200
- if up == False and c.coords(triangle)[0] > 200:
- x1 -= 1
- x3 += 1
- c.coords(triangle, x1, y1, x2, y2, x3, y3)
- else:
- up = True; y1 = 600; y2 = 200; y3 = 600
- root.after(20, move)
- # Создание канвы и треугольника
- c = Canvas(width=800, height=800)
- c.pack()
- x1 = 200
- y1 = 600
- x2 = 400
- y2 = 200
- x3 = 600
- y3 = 600
- Задание: На пространстве формы изображен календарь за декабрь текущего года с
- горизонтальным расположением недель. Метка циклически движется по датам в
- обратном направлении с дискретом времени 0.8 сек Запуск и остановка движения –
- команды главного меню, что приводит к установке рамки на последнюю дату.
- Структура проекта: lab5.py
- Форма:
- Листинг программы:
- from tkinter import *
- root = Tk()
- root.title("Календарь.Декабрь")
- b = [ ]
- f=False
- # Функция запуска
- def start():
- global f
- if f==False:
- f = True
- run()
- # Движение метки
- def run():
- global day,f
- if day==30:
- b[day].config(fg="red")
- b[0].config(fg="black")
- day-=1
- elif day==0:
- b[day].config(fg="red")
- b[day+1].config(fg="black")
- day=30
- else:
- b[day].config(fg="red")
- b[day + 1].config(fg="black")
- day-=1
- if f:
- root.after(800,run)
- # Функция остановки
- def stop():
- global day,f
- if day==30:
- b[day].config(fg="red")
- else:
- b[day+1].config(fg="black")
- b[30].config(fg="red")
- day=30
- f=False
- # Создание календаря
- i = 0
- j = 6
- days=31
- for day in range(days):
- b.append(b)
- b[day] = Button(text=day+1, width=5,font=(15))
- b[day].grid(row=i, column=j)
- if j==6:
- i+=1; j=0
- else: j+=1
- # Кнопки меню
- m = Menu(root)
- root.config(menu=m)
- m.add_command(label="Запуск", command=start)
- m.add_command(label="Стоп", command=stop)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement