Python:如何在Tkinter中关闭根窗口时获取

时间:2019-10-06 13:03:58

标签: python python-3.x tkinter python-vlc

我一直在使用Tkinter进行一些应用程序构建,但我偶然遇到了一个问题,即关闭主Tk()窗口并不会杀死底层的python shell。我很快意识到python-vlc实际上是在导致程序等待,直到我播放的歌曲停止播放。

我认为仅将exit()quit()放在root.mainloop()之后就足够了,但是在关闭窗口后似乎没有执行它,所以我意识到需要的是一种在关闭窗口时调用Mediaplayer.stop()函数的方法。

注意:不是我的实际代码,而是行为的示例

import vlc

class Manager():

    def __init__(self):

        self.root = Tk()

        self.song = vlc.Mediaplayer("Song.mp3")
        song.start()

        self.root.mainloop()

        print("Killing Program...")
        exit()

当self.root关闭时:

预期:歌曲停止,python外壳关闭。

观察到:歌曲在关闭python shell之前播放 n 秒。

NB:我正在终端中将文件作为.pyw文件运行,不知道这是否会影响任何事情,但是在IDLE或IDE(Jupyter Lab)中运行时,我会达到相同的效果。

0 个答案:

没有答案