«TclError: image» при добавлении изображения в метку - PullRequest
0 голосов
/ 23 декабря 2018

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

TclError: cannot use geometry manager grid inside . which already has slaves managed by pack

или:

TclError: image "pyimage86" doesn't exist

Кстати, каждый раз, когда я перезапускаю свой код, меняется «pyimage86», каждый прогон увеличивает число на 1, например, «pyimage86», «pyimage87» и т. Д. И т. Д.

Первое сообщение об ошибке особенно запутанно, потому что я использую .grid, чтобы поместить помеченное изображение в класс, но ошибка говорит об обратном?(я знаю, что пример кода отсутствует в классе)

Я пробовал разные изображения и преобразовал исходное изображение в файлы .TIF, .JNP, .PNG, .GIF, но ни один из них не дал результата.Я также удалил альфа-канал (очевидно, это могло быть проблемой при использовании ImageTK.PhotoImage, но это не помогло).Я также преобразовал изображение в градации серого в качестве последней попытки рва, но не повезло.

import tkinter as tk          
import PIL.Image
import PIL.ImageTk



root = tk.Tk()

image = Image.open("TemplateRack_GUI.png")
photo = ImageTk.PhotoImage(image)       

label = tk.Label(image=photo)
label.image = photo 
label.grid(row=5, column=5)


root.mainloop()   

1 Ответ

0 голосов
/ 23 декабря 2018

Вы говорите, что ваша программа иногда дает вам:

TclError: нельзя использовать сетку менеджера геометрии, внутри которой уже есть ведомые, управляемые пакетом.

, а иногда:

TclError: изображение "pyimage86" не существует.

Я не могу в это поверить!

Кроме того, вы сказали: «Я понимаю, что я не должен использовать менеджеры сетки или упаковки gemoetry в одном классе»

О каком классе вы говорите?

Документация Tkinter гласит: Никогда не смешивайте сетку и пакет в одном и том же главном окне .Пожалуйста, проверьте ваш код еще раз, потому что вы используете где-нибудь пакет и сетку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...