在 Tkinter Python 程序中看不到图片
Posted
技术标签:
【中文标题】在 Tkinter Python 程序中看不到图片【英文标题】:Not Able to See the Picture in Tkinter Python Program 【发布时间】:2020-05-02 03:12:02 【问题描述】:topper = Toplevel()
topper.title("2nd Window")
topper.state('zoomed')
my_img = ImageTk.PhotoImage(Image.open("diamond.png"))
my_label = Label(topper, image=my_img, height = 100 , width = 100)
F21 = Frame(topper, borderwidth=83, bg="blue", relief=SUNKEN)
button1 = Button(topper, text="class", command=topper.destroy)
button1.pack()
my_label.pack()
我正在运行代码,我没有收到任何错误,按钮也可以正常工作,但我无法在窗口中看到图片。
【问题讨论】:
代码在函数内部吗? 【参考方案1】:欢迎来到 *** Shakti!
对于未来 - 提供Minimal, Reproducible Example 总是好的,这样其他人可以复制和更好地理解您的问题,以便为您提供帮助!它还可以帮助您了解错误的确切来源。
当您从另一个 tkinter 窗口调用 Toplevel() 以打开一个新窗口时,您还需要在第二个窗口上调用“mainloop()”以显示图像 - 使用示例图像尝试我的代码和用
注释/取消注释该行topper.mainloop()
查看功能上的差异。
改编代码:
from tkinter import *
from PIL import Image, ImageTk # pip install pillow
def show_second_window():
topper = Toplevel()
topper.title("2nd Window")
topper.state('zoomed')
my_img = ImageTk.PhotoImage(Image.open("t1.png"))
my_label = Label(topper, image=my_img, height=100, width=100)
F21 = Frame(topper, borderwidth=83, bg="blue", relief=SUNKEN)
button1 = Button(topper, text="class", command=topper.destroy)
button1.pack()
my_label.pack()
topper.mainloop() # <---- this is needed to show the image!
root = Tk()
root.title("1st window")
button = Button(root, text="show second window", command=show_second_window)
button.pack()
root.mainloop()
【讨论】:
Toplevel
函数是一个 tkinter 小部件。
感谢布莱恩!我修改了代码,但它仍然在我的情况下运行,所以我猜测错误在于“diamond.png”或Shakti给出的代码之外。
先生,它正在处理这个文件,并且正在显示图片,但是当我将此窗口与另一个窗口连接时,而不是单击该窗口时,此窗口正在打开,但图像未显示。
啊,好吧,现在我明白你的问题了!我将在一秒钟内编辑我的代码
如果答案帮助您解决了问题,请投票并接受它:) -> ***.com/help/someone-answers以上是关于在 Tkinter Python 程序中看不到图片的主要内容,如果未能解决你的问题,请参考以下文章
在 Spyder 中看不到由 PySide2 创建的应用程序窗口
Python:Tkinter TclError:无法调用“图像”命令