【问题标题】:How to display an image in a specific tkinter window using PhotoImage?如何使用 PhotoImage 在特定的 tkinter 窗口中显示图像?
【发布时间】:2020-11-13 08:08:56
【问题描述】:

我有两个正在运行的 tkinter 窗口,但我只想要一个特定的窗口来显示图像,但我无法实现这一点。我试图在 Label 语句中指定主人,但 python 显示一个错误,上面写着“图像 pyimage1 不存在” 请帮忙

import tkinter as tk
from PIL import Image, ImageTk

a=tk.Tk()
a.geometry('800x500+275+100')
a.title('HOME PAGE')

c=tk.Tk()
c.geometry('800x500+275+100')
c.title('PROFILE')

load=Image.open('untitled.png')
render=ImageTk.PhotoImage(load)
img=tk.Label(c,image=render)
img.pack()

a.mainloop()
c.mainloop() 

【问题讨论】:

  • 您应该使用Toplevel() 代替cc = tk.Toplevel()。并删除c.mainloop()
  • 除此之外,如果您仍希望保留两个Tk() 实例,请将您的render 更改为render=ImageTk.PhotoImage(image=load,master=c),但稍后可能需要进行更多更改才能制作整个应用程序正常工作
  • 哦,谢谢@acw1668 现在可以使用了
  • @CoolCloud 我试过了,谢谢

标签: python user-interface tkinter project photoimage


【解决方案1】:

如果您想要第二个屏幕,请使用 tk.Toplevel 并删除 c.mainloop

a=tk.Tk()
a.geometry('800x500+275+100')
a.title('HOME PAGE')

c=tk.Toplevel()
c.geometry('800x500+275+100')
c.title('PROFILE')

load=Image.open('untitled.png')
render=ImageTk.PhotoImage(load)
img=tk.Label(c,image=render)
img.pack()

a.mainloop()

【讨论】:

  • 没问题,打勾就可以接受我的回答
猜你喜欢
  • 1970-01-01
  • 2019-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 2014-06-27
相关资源
最近更新 更多