为什么我不能在tkinter Toplevel()窗口中显示图像?

时间:2020-06-26 17:13:16

标签: python image tkinter tk

我正在尝试创建一个python程序tkinter,按下按钮后,它将打开一个新的全屏tkinter窗口,其中包含图像并播放音频文件-这是我的代码:

"#0000ff"

(我的图像和音频文件都和我的python文件一起放在桌面上)

但是,当我运行代码时,当我按下按钮时,会播放音频,但不会打开第二个tkinter窗口。

我试图破坏()buttonWindow,并尝试了许多不同的方式在tkinter窗口中包括图像-如果我使用PhotoImage()删除代码行,则该窗口出现(显然,我得到了一种语法错误,指出未定义“ img”。

我该如何解决?

谢谢, 路易斯

1 个答案:

答案 0 :(得分:-1)

您的playound()命令阻止执行。 playound()命令具有一个可选字段“ block”,默认情况下为True。将其更改为False将继续执行并允许mainloop()继续。

第二,只需调用label.draw()将图像绘制到TopLevel窗口即可。

这是代码:

from tkinter import *
from PIL import Image, ImageTk
from playsound import playsound

def play():
    window = Toplevel()
    window.attributes('-fullscreen', True)
    img = ImageTk.PhotoImage(Image.open("pic.jpeg"))
    label = Label(window, image=img).pack()
    playsound("song.mp3",block=False)
    label.draw()
    
buttonWindow = Tk()
b = Button(buttonWindow, text="Press Button", command=play)
b.pack()
buttonWindow.mainloop()

干杯!