Функция, отвечающая за открытие и изменение размера фотографии, не работает - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь упаковать код, отвечающий за открытие, изменяя размеры изображений в функцию, так как я буду выполнять это действие много раз.У меня есть пара строк, которые необходимы для отображения изображения в графическом интерфейсе:

img = Image.open("images/cola.jpg")
img = img.resize((40, 40), Image.ANTIALIAS)
photoImg = ImageTk.PhotoImage(img)
ColaLabel = ttk.Label(gui, image=photoImg)
ColaLabel.grid(column=6, row=0)
Colala = ttk.Label(gui, text='30')
Colala.grid(column=5, row=0)

И графический интерфейс выглядит так:

enter image description here

Я пытался сделать функцию следующим образом:

def createGUIProduct(path: str):
    img = Image.open(path)
    img = img.resize((40, 40), Image.ANTIALIAS)
    return ImageTk.PhotoImage(img)

И вызывая ее следующим образом:

ColaLabel = ttk.Label(gui, image=createGUIProduct("images/cola.jpg"))
ColaLabel.grid(column=6, row=0)
Colala = ttk.Label(gui, text='30')
Colala.grid(column=5, row=0)

И результат:

enter image description here

РЕДАКТИРОВАТЬ:

После функции изменения:

def createGUIProduct(path: str):
    global photoImage
    img = Image.open(path)
    img = img.resize((40, 40), Image.ANTIALIAS)
    photoImage = ImageTk.PhotoImage(img)
    return photoImage

И вызов двух продуктов одним и тем же способом:

ColaLabel = ttk.Label(gui, image=createGUIProduct("images/cola.jpg"))
ColaLabel.grid(column=6, row=0)
Colala = ttk.Label(gui, text='30')
Colala.grid(column=5, row=0)


WodaLabel = ttk.Label(gui, image=createGUIProduct("images/woda.jpg"))
WodaLabel.grid(column=8, row=0)
Wodala = ttk.Label(gui, text='31')
Wodala.grid(column=7, row=0)

Только один показ:

enter image description here

1 Ответ

0 голосов
/ 21 апреля 2019

вы использовали другое имя функции, это должно быть createGUIImage (), а не createGUIProduct ()

изменить

ColaLabel = ttk.Label(gui, image=createGUIProduct("images/cola.jpg"))

на:

ColaLabel = ttk.Label(gui, image=createGUIImage("images/cola.jpg"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...