Помогите решить задание, никак не получается перемещать фигуру как бы не пыталась.
На форме располагаются:
компонент Canvas размером 200х200, в левом верхнем углу которого находится рисунок размером 40х40;
редактор Text размером 5х5, в левом верхнем углу которого находится латинский символ а;
четыре кнопки со стрелками ↑, ↓, →, ←; две линейки Scale на пять положений.
Кнопки со стрелками синхронно перемещают символ в редакторе и рисунок в контейнере Canvas строго
по периметру, а линейки Scale показывают текущее положение фигур по горизонтали и вертикали.
Закрывает приложение двойной клик по форме.
Вот что мне удалось сделать. Код может быть кривой, так как это отрывки из примеров!
from tkinter import *
from turtle import width
from PIL import Image, ImageTk
#Начальные координаты по X и Y
dx = 10
dy = 10
#Компонент Canvas
def elementCanvas():
global elCanvas
elCanvas = Canvas(
root,
width=200,
height=200,
bg='white')
elCanvas.place(x = dx, y = dy)
elCanvas.pack()
#Изображение
def elementImage():
global image
image = ImageTk.PhotoImage(Image.open("cat(4040).jpg"))
elCanvas.create_image(10+dx, 15+dy, image = image)
"""elCanvas.bind('<Up>', lambda event: elCanvas.move(image, 0,-2))
elCanvas.bind('<Down>', lambda event: elCanvas.move(image, 0, 2))
elCanvas.bind('<Left>', lambda event: elCanvas.move(image, -2, 0))
elCanvas.bind('<Right>', lambda event: elCanvas.move(image, 2, 0))"""
#Редактор Text
def elementText():
global elText
elText = Text(width=5, height=5, bg="White", fg='black')
elText.place(x=182+dx,y=dy)
elText.insert(1.0, "a")
#Кнопки со стрелками
def elementButton_1():
global elButton_1
elButton_1=Button(text="←", bg="white", fg="black", justify="center", width=1, height=1)
elButton_1.place(x=18, y=237)
def elementButton_2():
global elButton_2
elButton_2=Button(text="↑", bg="white", fg="black", justify="center", width=1, height=1)
elButton_2.place(x=35, y=224)
def elementButton_3():
global elButton_3
elButton_3=Button(text="→", bg="white", fg="black", justify="center", width=1, height=1)
elButton_3.place(x=52, y=237)
def elementButton_4():
global elButton_4
elButton_4=Button(text="↓", bg="white", fg="black", justify="center", width=1, height=1)
elButton_4.place(x=35, y=250)
#Линейки Scale
#Горизонатльная линейка Scale
def elementScalehorizontal():
global elScalehorizontal
#Горизонатльная линейка Scale
elScalehorizontal = Scale(orient='horizontal',resolution=1, from_=0, to=5)
elScalehorizontal.place(x=90+dx, y=210+dy)
#Вертикальная линейка Scale
def elementScalevertical():
global elScalevertical
elScalevertical = Scale(orient='vertical',resolution=1, from_=0, to=5)
elScalevertical.place(x=230+dx, y=90+dy)
#Окно программы
def mainWindowProgram():
elementCanvas()
elementImage()
elementText()
elementButton_1()
elementButton_2()
elementButton_3()
elementButton_4()
elementScalehorizontal()
elementScalevertical()
#Вызов программы
def application():
global root
root = Tk()
root.title("20-ЗИЭ Контрольная работа №2. Задание №3. Вариант 2-26. Трофимова Т.Д.")
root.geometry("280x280")
root.resizable(0,0)
mainWindowProgram()
root.bind("<Double-Button-1>", lambda x: root.destroy())
root.mainloop()
application()
На форме располагаются:
компонент Canvas размером 200х200, в левом верхнем углу которого находится рисунок размером 40х40;
редактор Text размером 5х5, в левом верхнем углу которого находится латинский символ а;
четыре кнопки со стрелками ↑, ↓, →, ←; две линейки Scale на пять положений.
Кнопки со стрелками синхронно перемещают символ в редакторе и рисунок в контейнере Canvas строго
по периметру, а линейки Scale показывают текущее положение фигур по горизонтали и вертикали.
Закрывает приложение двойной клик по форме.
Вот что мне удалось сделать. Код может быть кривой, так как это отрывки из примеров!
from tkinter import *
from turtle import width
from PIL import Image, ImageTk
#Начальные координаты по X и Y
dx = 10
dy = 10
#Компонент Canvas
def elementCanvas():
global elCanvas
elCanvas = Canvas(
root,
width=200,
height=200,
bg='white')
elCanvas.place(x = dx, y = dy)
elCanvas.pack()
#Изображение
def elementImage():
global image
image = ImageTk.PhotoImage(Image.open("cat(4040).jpg"))
elCanvas.create_image(10+dx, 15+dy, image = image)
"""elCanvas.bind('<Up>', lambda event: elCanvas.move(image, 0,-2))
elCanvas.bind('<Down>', lambda event: elCanvas.move(image, 0, 2))
elCanvas.bind('<Left>', lambda event: elCanvas.move(image, -2, 0))
elCanvas.bind('<Right>', lambda event: elCanvas.move(image, 2, 0))"""
#Редактор Text
def elementText():
global elText
elText = Text(width=5, height=5, bg="White", fg='black')
elText.place(x=182+dx,y=dy)
elText.insert(1.0, "a")
#Кнопки со стрелками
def elementButton_1():
global elButton_1
elButton_1=Button(text="←", bg="white", fg="black", justify="center", width=1, height=1)
elButton_1.place(x=18, y=237)
def elementButton_2():
global elButton_2
elButton_2=Button(text="↑", bg="white", fg="black", justify="center", width=1, height=1)
elButton_2.place(x=35, y=224)
def elementButton_3():
global elButton_3
elButton_3=Button(text="→", bg="white", fg="black", justify="center", width=1, height=1)
elButton_3.place(x=52, y=237)
def elementButton_4():
global elButton_4
elButton_4=Button(text="↓", bg="white", fg="black", justify="center", width=1, height=1)
elButton_4.place(x=35, y=250)
#Линейки Scale
#Горизонатльная линейка Scale
def elementScalehorizontal():
global elScalehorizontal
#Горизонатльная линейка Scale
elScalehorizontal = Scale(orient='horizontal',resolution=1, from_=0, to=5)
elScalehorizontal.place(x=90+dx, y=210+dy)
#Вертикальная линейка Scale
def elementScalevertical():
global elScalevertical
elScalevertical = Scale(orient='vertical',resolution=1, from_=0, to=5)
elScalevertical.place(x=230+dx, y=90+dy)
#Окно программы
def mainWindowProgram():
elementCanvas()
elementImage()
elementText()
elementButton_1()
elementButton_2()
elementButton_3()
elementButton_4()
elementScalehorizontal()
elementScalevertical()
#Вызов программы
def application():
global root
root = Tk()
root.title("20-ЗИЭ Контрольная работа №2. Задание №3. Вариант 2-26. Трофимова Т.Д.")
root.geometry("280x280")
root.resizable(0,0)
mainWindowProgram()
root.bind("<Double-Button-1>", lambda x: root.destroy())
root.mainloop()
application()
Python:
# Контрольная работа студентки группы 20-ЗИЭ Трофимовой Т.Д.
# Дисциплина - Высокоуровневые технологии программирования
# Вариант № 2-26.
# Контрольная работа №2. Задача №3.
"""На форме располагаются:
компонент Canvas размером 200х200, в левом верхнем углу которого находится рисунок размером 40х40;
редактор Text размером 5х5, в левом верхнем углу которого находится латинский символ а;
четыре кнопки со стрелками ↑, ↓, →, ←; две линейки Scale на пять положений.
Кнопки со стрелками синхронно перемещают символ в редакторе и рисунок в контейнере Canvas строго
по периметру, а линейки Scale показывают текущее положение фигур по горизонтали и вертикали.
Закрывает приложение двойной клик по форме."""
from tkinter import *
from turtle import width
from PIL import Image, ImageTk
#Начальные координаты по X и Y
dx = 10
dy = 10
#Компонент Canvas
def elementCanvas():
global elCanvas
elCanvas = Canvas(
root,
width=200,
height=200,
bg='white')
elCanvas.place(x = dx, y = dy)
elCanvas.pack()
#Изображение
def elementImage():
global image
image = ImageTk.PhotoImage(Image.open("cat(4040).jpg"))
elCanvas.create_image(10+dx, 15+dy, image = image)
"""elCanvas.bind('<Up>', lambda event: elCanvas.move(image, 0,-2))
elCanvas.bind('<Down>', lambda event: elCanvas.move(image, 0, 2))
elCanvas.bind('<Left>', lambda event: elCanvas.move(image, -2, 0))
elCanvas.bind('<Right>', lambda event: elCanvas.move(image, 2, 0))"""
#Редактор Text
def elementText():
global elText
elText = Text(width=5, height=5, bg="White", fg='black')
elText.place(x=182+dx,y=dy)
elText.insert(1.0, "a")
#Кнопки со стрелками
def elementButton_1():
global elButton_1
elButton_1=Button(text="←", bg="white", fg="black", justify="center", width=1, height=1)
elButton_1.place(x=18, y=237)
def elementButton_2():
global elButton_2
elButton_2=Button(text="↑", bg="white", fg="black", justify="center", width=1, height=1)
elButton_2.place(x=35, y=224)
def elementButton_3():
global elButton_3
elButton_3=Button(text="→", bg="white", fg="black", justify="center", width=1, height=1)
elButton_3.place(x=52, y=237)
def elementButton_4():
global elButton_4
elButton_4=Button(text="↓", bg="white", fg="black", justify="center", width=1, height=1)
elButton_4.place(x=35, y=250)
#Линейки Scale
#Горизонатльная линейка Scale
def elementScalehorizontal():
global elScalehorizontal
#Горизонатльная линейка Scale
elScalehorizontal = Scale(orient='horizontal',resolution=1, from_=0, to=5)
elScalehorizontal.place(x=90+dx, y=210+dy)
#Вертикальная линейка Scale
def elementScalevertical():
global elScalevertical
elScalevertical = Scale(orient='vertical',resolution=1, from_=0, to=5)
elScalevertical.place(x=230+dx, y=90+dy)
#Окно программы
def mainWindowProgram():
elementCanvas()
elementImage()
elementText()
elementButton_1()
elementButton_2()
elementButton_3()
elementButton_4()
elementScalehorizontal()
elementScalevertical()
#Вызов программы
def application():
global root
root = Tk()
root.title("20-ЗИЭ Контрольная работа №2. Задание №3. Вариант 2-26. Трофимова Т.Д.")
root.geometry("280x280")
root.resizable(0,0)
mainWindowProgram()
root.bind("<Double-Button-1>", lambda x: root.destroy())
root.mainloop()
application()
Последнее редактирование: