За последние 24 часа нас посетили 20577 программистов и 1102 робота. Сейчас ищут 355 программистов ...

Никак не получается двигать рисунок(((

Тема в разделе "Сделайте за меня", создана пользователем ttd2001, 17 мар 2022.

  1. ttd2001

    ttd2001 Новичок

    С нами с:
    17 мар 2022
    Сообщения:
    4
    Симпатии:
    0
    Помогите решить задание, никак не получается перемещать фигуру как бы не пыталась.

    На форме располагаются:
    компонент 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()