繁体   English   中英

如何在GUI中使用Tkinter显示图像

[英]How to display an image using tkinter in gui

给定的代码不起作用,因为它给出了找不到“ haridwar.jpg”文件的错误,尽管我尝试将其放在Python35和台式机中。 请帮忙

import tkinter as tk  
from PIL import Image,ImageTk  
root = tk.Tk()  
root.title("display image")  
im=Image.open("haridwar.jpg")  
photo=ImageTk.PhotoImage(im)  
cv = tk.Canvas()  
cv.pack(side='top', fill='both', expand='yes')  
cv.create_image(10, 10, image=photo, anchor='nw')  
root.mainloop()

根据您的问题判断,您可能没有将该文件放在合适的位置; 您也没有提供通往这些位置的路径。 因此,让我们分解一下。

您说过将图像放置在Python35文件夹中。 不知道更多信息,我想您正在谈论的是python默认目录,位于C:\\program files\\Python35

如果是这种情况,请更改该行:

im=Image.open("haridwar.jpg") 

对此:

im=Image.open("C:\program files\Python35\haridwar.jpg")

虽然这不是您图像的好地方。 我们将在几秒钟内解决这个问题。

如您所说,您还尝试了台式机。 因此,您需要提供一个通往桌面的路径。

像这样:

im=Image.open("C:/Users/your_user_folder/Desktop/haridwar.jpg")

这也不是存放文件的好地方。

让我们尝试其他事情。 让我们将文件放入您的工作python目录中。

例如,如果您的main.py文件位于

"C:/myworkspace/my_program/main.py"

那么您可以将该图像放置在同一my_program文件夹中,并且您的代码应该可以正常工作。

如果您想拥有一个仅用于图像的文件夹,则可以在如下所示的目录中拥有一个文件夹:

"C:/myworkspace/my_program/my_images/haridwar.jpg"

在这种情况下,您可以提供以下简短路径:

im=Image.open("./my_images/haridwar.jpg") 

注意. /my_image文件夹之前。 这是用来告诉Python,它可以在文件夹的当前工作目录中查找。

我使用我知道正确的目录/文件名尝试了您的代码,并且可以正常工作。 您的目录/文件名的拼写错误或目录错误。

确保目录和文件名正确。

例如,我的桌面上有“ Image.jpg”

import tkinter as tk  
from PIL import Image,ImageTk  
root = tk.Tk()  
root.title("display image")  
im=Image.open("C:/Users/<myname>/Desktop/Image.jpg")  #This is the correct location and spelling for my image location
photo=ImageTk.PhotoImage(im)  
cv = tk.Canvas()  
cv.pack(side='top', fill='both', expand='yes')  
cv.create_image(10, 10, image=photo, anchor='nw')  
root.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM