Попытка вставить изображение с помощью tkinter - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь создать свою первую кишку с помощью tkinter (все еще супер новичок в python). Я не пробовал разных способов вставить изображение, но ни один из них не работал. Думаю, я даже не импортировал ImageTk ... Сообщение об ошибке в этом случае: «TclError: не может использовать пакет менеджера геометрии внутри. У которого уже есть подчиненные устройства, управляемые сеткой». Может ли кто-нибудь помочь мне сделать это правильно? Файл изображения находится в том же каталоге, что и файл .py

import tkinter as tk
from tkinter import *      
from PIL import ImageTk,Image  
    
root = tk.Tk()     
photo = PhotoImage(file = "6.gif")    
tk.Label(root, image = photo).pack() 
    
root.mainloop()

traceback:

runfile ('/ Users / maj-brittbuchholz / Desktop / image Practice tkinter.py', wdir = '/ Users / maj-brittbuchholz / Desktop') Отслеживание (последний вызов последним):

Файл "", строка 1, в файле запуска ('/ Users / maj-brittbuchholz / Desktop / image практика tkinter. py ', wdir =' / Users / maj-brittbuchholz / Desktop ')

Файл "/opt/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", строка 827, в исполняемом файле execfile (имя файла, пространство имен)

Файл "/opt/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", строка 110, в execfile exe c (compile (f.read (), filename, 'exe c'), пространство имен)

Файл "/ Users / maj-brittbuchholz / Desktop / image Practice tkinter.py", строка 13, в tk.Label (root, image = photo) .pack ()

Файл "/opt/anaconda3/lib/python3.7/tkinter/init. py ", строка 2766, в init Widget. init (self , master, 'label', cnf, kw)

Файл "/opt/anaconda3/lib/python3.7/tkinter/init.py", строка 2299, в init (widgetName, self._w) + extra + self._options (cnf))

TclError: изображение «pyimage22» не существует

1 Ответ

0 голосов
/ 03 августа 2020

Есть несколько ошибок:

  1. У tk.label есть мастер с именем win. Либо вы не показываете нам весь код, либо он не определен. Если он определен где-то еще, то это нормально.

  2. Ошибка говорит, что вы не можете его упаковать, потому что что-то использует grid. Это означает, что есть что-то еще, у которого есть grid ведомые устройства.

Кроме этого, ваша программа в порядке. Вы можете ошибочно полагать, что именно отсюда возникает ошибка, а может и нет.

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