Так что в основном, я пытаюсь узнать tkinter, но гаджет PhotoImage не будет работать.
Мой код:
import tkinter as tk
root = tk.Tk()
logo = tk.PhotoImage(file ="monky.gif")
def test():
print("Hello World")
text = tk.Label(root, text = "Hello World")
text.pack()
Я также пробовал:
logo = tk.PhotoImage(file ="/Users/MinecraftMaster/Desktop/Python/Tests/monky.gif")
Сообщение об ошибке:
Traceback (most recent call last):
File "/Users/MinecraftMaster/Desktop/Python/Tests/Tkinter Test.py", line 4, in <module>
logo = tk.PhotoImage(file ="monky.gif")
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 3539, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 3495, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "monky.gif": no such file or directory
Это изображение моего каталога:
Изменение: друг помог мне решить эту проблему. Для кого-либо еще с этой проблемой просто поместите каталог в переменную, а затем вызовите ее. Спасибо всем, кто пытался помочь
@Omaro_IB. Ниже изображен сценарий, который я использовал, и результат.
Вы должны убедиться, monky.gif
файл monky.gif
находится в том же каталоге, что и ваш файл сценария python, например monky.py
.
Чтобы изображение появилось, вам нужны параметры image=logo
и tk.Label
compound='top'
в методе tk.Label
чтобы сообщить tkinter отображать изображение и текст вместе, так что изображение находится вверху.
Надеюсь, что это помогает.
Обновление: Как проверить файл monky.gif
в том же каталоге, что и ваш файл сценария python.
Откройте терминал, например, нажмите Ctr
+ Alt
+ T
Если ваши изображения и файлы python находятся в папке Home_folder/Desktop/test_folders, введите команду cd
в терминале, чтобы перейти в вашу папку (например, каталог). Затем используйте команду ls
чтобы перечислять ваши файлы в этой папке. Эти команды помогут вам увидеть, что файлы python (например, monky.py
) и monky.gif
находятся в одном каталоге. Если эти файлы находятся не в той же папке, что и изображение не отображается.
$ cd Desktop/test_folder/
$ ls
monky.gif monky.py
ls
выведет список элементов в каталоге, в котором она была введена. Другая команда, которую вам нужно знать, это cd
для смены каталога. Чтобы выполнить эти команды, вам нужно открыть терминал Linux. В Ubuntu вы можете нажать Ctrl
+ Alt
+ T
вызвать терминал. Смотрите обновление выше.
Если вы открываете файл, например:
logo = tk.PhotoImage(file ="monky.gif")
то файл monky.gif
должен находиться в папке, в которой программа (которая будет читать этот файл). например:
monky.gif путь: D: /foo/bar/monky.gif
путь к программе: D: /foo/bar/example.py
Вы попытались предоставить полный путь:
logo = tk.PhotoImage(file ="/Users/MinecraftMaster/Desktop/Python/Tests/monky.gif")
Но это не полный путь.
Полный путь:
C:/Users/MinecraftMaster/Desktop/Python/Tests/monky.gif
т.е. также добавить имя диска с двоеточием до пути. Поэтому попробуйте:
logo = tk.PhotoImage(file ="C:/Users/MinecraftMaster/Desktop/Python/Tests/monky.gif")
Вы не разместили виджет, который содержит фотографию как ярлык, а затем он должен появиться.
import tkinter as tk
root = tk.Tk()
photo = tk.PhotoImage(file = "monkey.gif")
label = tk.Label(image = photo).pack()
def test():
print("Hello World")
text = tk.Label(root, text = "Hello World")
text.pack()
Как выглядит окно
https://gyazo.com/8ce068a49c99a8a7f53f64cd5024a48f
Tkinter Test
. Ваш код пытается загрузить его из папки с именемTests
. Конечно, это не удается ...