首页 > 解决方案 > Python:如何在 Tkinter 中关闭根窗口时获取

问题描述

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

我认为简单地放置 andexit()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 shell 关闭。

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

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

标签: pythonpython-3.xtkinterpython-vlc

解决方案


推荐阅读