Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.56 KB | None | 0 0
  1. Лабораторная работа №6
  2. Задание: Исходно на форме находится равнобедренный треугольник с основанием внизу 400 пикселей. При запуске движения основание начинает уменьшаться со
  3. скоростью 50 пикселей/сек. и шагом в 1 пиксель. После превращения фигуры в
  4. вертикальную линию начинается обратное движение, но основание теперь
  5. находится вверху. При следующем возврате к вертикальной линии снова основание
  6. внизу. Запуск и остановка движения – клавиша SpeedButton.
  7. Структура проекта: lab6.py
  8. Форма:
  9.  
  10. Листинг программы:
  11. from tkinter import *
  12. root = Tk()
  13.  
  14. up = True
  15. # Функция движения
  16. def move():
  17. global x1, x2, x3, y1, y2, y3, up
  18. if v.get():
  19. if up and c.coords(triangle)[0] < 400:
  20. x1 += 1
  21. x3 -= 1
  22. c.coords(triangle, x1, y1, x2, y2, x3, y3)
  23. else:
  24. up = False; y1 = 200; y2 = 600; y3 = 200
  25. if up == False and c.coords(triangle)[0] > 200:
  26. x1 -= 1
  27. x3 += 1
  28. c.coords(triangle, x1, y1, x2, y2, x3, y3)
  29. else:
  30. up = True; y1 = 600; y2 = 200; y3 = 600
  31. root.after(20, move)
  32. # Создание канвы и треугольника
  33. c = Canvas(width=800, height=800)
  34. c.pack()
  35. x1 = 200
  36. y1 = 600
  37. x2 = 400
  38. y2 = 200
  39. x3 = 600
  40. y3 = 600
  41. Задание: На пространстве формы изображен календарь за декабрь текущего года с
  42. горизонтальным расположением недель. Метка циклически движется по датам в
  43. обратном направлении с дискретом времени 0.8 сек Запуск и остановка движения –
  44. команды главного меню, что приводит к установке рамки на последнюю дату.
  45. Структура проекта: lab5.py
  46. Форма:
  47.  
  48. Листинг программы:
  49. from tkinter import *
  50. root = Tk()
  51. root.title("Календарь.Декабрь")
  52.  
  53. b = [ ]
  54. f=False
  55. # Функция запуска
  56. def start():
  57. global f
  58. if f==False:
  59. f = True
  60. run()
  61.  
  62. # Движение метки
  63. def run():
  64. global day,f
  65. if day==30:
  66. b[day].config(fg="red")
  67. b[0].config(fg="black")
  68. day-=1
  69. elif day==0:
  70. b[day].config(fg="red")
  71. b[day+1].config(fg="black")
  72. day=30
  73. else:
  74. b[day].config(fg="red")
  75. b[day + 1].config(fg="black")
  76. day-=1
  77. if f:
  78. root.after(800,run)
  79.  
  80. # Функция остановки
  81. def stop():
  82. global day,f
  83. if day==30:
  84. b[day].config(fg="red")
  85. else:
  86. b[day+1].config(fg="black")
  87. b[30].config(fg="red")
  88. day=30
  89. f=False
  90.  
  91. # Создание календаря
  92. i = 0
  93. j = 6
  94. days=31
  95. for day in range(days):
  96. b.append(b)
  97. b[day] = Button(text=day+1, width=5,font=(15))
  98. b[day].grid(row=i, column=j)
  99. if j==6:
  100. i+=1; j=0
  101. else: j+=1
  102.  
  103. # Кнопки меню
  104. m = Menu(root)
  105. root.config(menu=m)
  106. m.add_command(label="Запуск", command=start)
  107. m.add_command(label="Стоп", command=stop)
  108.  
  109. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement