Я пытаюсь создать изображение для моего холста Tkinter. Путь изображения в порядке, объект PhotoImage создается без проблем, но когда я пытаюсь создать изображение Canvas, используя объект PhotoImage, исключение поднимается. У меня есть PhotoImage (), хранящийся как атрибут класса. Я также попытался сохранить изображение в глобальном списке, чтобы предотвратить сборы мусора, но не работает. p>
import tkinter as tk
from tkinter import PhotoImage
root = tk.Tk()
canvas = tk.Canvas(root, width=800, height=600)
canvas.pack()
image_path = "images/card_front2.png"
try:
pic = PhotoImage(file=image_path)
canvas.create_image(415, 265, image=pic)
except Exception as e:
print(f"Error loading image: {e}")
root.mainloop()
< /code>
Но теперь я создаю объекты класса Tkinter в моих собственных классах для создания приложения Flashcard. Вот соответствующая часть моего класса для создания настройки Canvas, которая будет укоренена на reference_window. Основное внимание уделяется последним 4 строкам. < /P>
class CanvasSetup:
dutch_word = ""
eng_word = ""
counter = 1
def __init__(self, window_ref, data, lang, colour_light, colour_dark, colour_neutral):
##### Define inputs #####
self.window_ref = window_ref
self.data = data
self.my_lang = lang
self.colour_light = colour_light
self.colour_dark = colour_dark
self.colour_neutral = colour_neutral
##### Get image for English canvas #####
self.eng_pic = PhotoImage(file="card_back2.png")
self.non_eng_pic = None # Initially set to None
##### Get number list for length of data inputted #####
self.number_list = [num for num in range(len(self.data["ENG"].keys()))]
##### Create canvas #####
## Get image for other lang canvas ##
if self.my_lang == "Dutch":
self.non_eng_pic = PhotoImage(file="card_front2.png")
else:
self.non_eng_pic = PhotoImage(file="card_front2.png")
self.canvas = Canvas(self.window_ref, width=800, height=500, highlightthickness=0, bg=self.colour_light)
self.canvas.grid(column=0, row=0, columnspan=3)
print(f"non_eng_pic: {self.non_eng_pic}")
self.canvas_img = self.canvas.create_image(415, 265, image=self.non_eng_pic)
print(f"non_eng_pic###########: {self.non_eng_pic}")
< /code>
это Get's's Printed: < /strong>
non_eng_pic: pyimage < /p>
, а затем показана эта ошибка:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python312\Lib\tkinter\__init__.py", line 1967, in __call__
return self.func(*args)
^^^^^^^^^^^^^^^^
File "C:\Users\gabri\OneDrive\Documents\Work\Udemy\100 Days of Python\OOP\Day 31.3 - Improved FlashCard\main.py", line 172, in
main_window = MyMenu(starter_image, lambda: start_flashcards(language, learning_type, vocab))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gabri\OneDrive\Documents\Work\Udemy\100 Days of Python\OOP\Day 31.3 - Improved FlashCard\main.py", line 107, in start_flashcards
flashcard_canvas = CanvasSetup(flash_window.window, data_dict, language,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gabri\OneDrive\Documents\Work\Udemy\100 Days of Python\OOP\Day 31.3 - Improved FlashCard\flashcard.py", line 56, in __init__
self.canvas_img = self.canvas.create_image(415, 265, image=self.non_eng_pic)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python312\Lib\tkinter\__init__.py", line 2864, in create_image
return self._create('image', args, kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python312\Lib\tkinter\__init__.py", line 2850, in _create
return self.tk.getint(self.tk.call(
^^^^^^^^^^^^^
_tkinter.TclError: image "pyimage3" doesn't exist
< /code>
Я пробовал все, о чем я могу придумать, и искал ответы, но ничто не избавится от этой ошибки. Пожалуйста, помогите.
Подробнее здесь: https://stackoverflow.com/questions/794 ... r-even-tho
Почему я получаю ошибку при попытке создать изображение Canvas с Tkinter, хотя I -PhotoImage () объект хранится как атри ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему я получаю ошибку при попытке создать изображение Canvas с Tkinter? [дублировать]
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ошибка просмотра карты Tkinter: объект «PhotoImage» не имеет атрибута «_PhotoImage__photo»
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ошибка загрузки изображений .jpg в окне tkinter с использованием tk.PhotoImage.
Anonymous » » в форуме Python - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ошибка: AttributeError: объект «PhotoImage» не имеет атрибута «_PhotoImage__photo».
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-