Найти - Пользователи
Полная версия: Обновление картинки
Начало » GUI » Обновление картинки
1 2
RIKUDO05
У меня не получается каректное оновление картинки. ХОтелось бы уввидеть кусок кода, в котором когда происходит кое-либо событие (не важно какое) rotate изображения менялся
4kpt_II
Не обновляется где?
В Tkinter? А проверяете сам объект и он изменился?
RIKUDO05
Давайте я вам сейчаас код выложу
RIKUDO05
from tkinter import *
from PIL import Image, ImageTk
def obnovit(event):
    image2 = image1.rotate(60)
    image3 = ImageTk.PhotoImage(image2)    
    label["image"] = image3
    
root = Tk()
image1 = Image.open('brod.png')
image2 = image1.rotate(0)
image3 = ImageTk.PhotoImage(image2)
label = Label(root, image = image3, background = "white")
root.bind("<Button-1>", obnovit)
label.grid()
root.mainloop()

Вот, жму на картинку, а там белая картинка вместо того что-бы градусы изменить. Градусы изменять можно, проверял.
4kpt_II
Вопрос еще открыт?
RIKUDO05
Да! Открыт, проблема в том что код работает неккоректо, тыкнете в ошибку.
4kpt_II
В ошибку ткнуть не могу.
Их слишком много. Пришлось написать самому за Вас. Так как с ООП Вы не очень дружны, то я написал с использованием ненавистных мне global.

Держите

import tkinter
from PIL import ImageTk, Image
#
angle = 0
#
def push(event, img):
    global image
    global angle
    global image_
    angle += 10
    canvas.delete(img)
    image_ = ImageTk.PhotoImage(image.rotate(angle, expand=True))
    img = canvas.create_image(100, 100, image=image_, anchor="center")
    root.update()
#
root = tkinter.Tk()
root.geometry("400x400+100+100")
#
image = Image.open('image.png')
image = image.convert("RGBA")
image_ = ImageTk.PhotoImage(image)
#
canvas = tkinter.Canvas(root, width=200, height=200)
canvas.place(relx=0.5, rely=0.5, anchor="center")
img = canvas.create_image(100, 100, image=image_, anchor="center")
#
but = tkinter.Button(root, text="rotate")
but.bind("<Button-1>", lambda event: push(event, img))
but.place(relx=0.5, rely=0.9, anchor="center")
#
root.mainloop()

Еще рекомендую почитать на досуге ЭТО!!!, чтобы не писать from tkinter import* никогда.

P.S. Будут вопросы - пишите…
RIKUDO05
Писал писал, дописал до того что пушка танка смотрит за мышкой и танк едет.
Нашёл в Tkinter кучу нехороших вещей. Надесь будет лучше если я перееду на PyQt + научусь хорошо польтзоваться ООП. И вообще, где ООП использовать надо? Как определить? А то я в нём смысла пока не нахожу.
4kpt_II
RIKUDO05
Нашёл в Tkinter кучу нехороших вещей.

Каких это, если не секрет?

RIKUDO05
И вообще, где ООП использовать надо?

Везде

RIKUDO05
А то я в нём смысла пока не нахожу.

Значит пока Вам рано еще на ООП переходить.
RIKUDO05
Нельзя сделать так что-бы обрабатывало нормально 2 клавиши и пауза после нажатия на клавишу…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB