0

我正在尝试用它Snack来制作一个简单的 mp3 播放器。它与Tkinter. 以下是文档中有关其用法的说明:

The beginning of a program that uses Snack might look like:

    from Tkinter import *
    root = Tk()

    import tkSnack
    tkSnack.initializeSnack(root)

    # Now you can use tkSnack commands and objects
    # ...

root = Tk()行打开一个空窗口,可以在 Snack 初始化后关闭,Snack 将继续工作(支付、暂停、恢复、加载音频等)。

有什么办法可以避免打开这个窗口?你能解释一下为什么这样的库需要一个图形窗口才能工作吗?

4

2 回答 2

2

如果您使用root = Tk().withdraw(),则将创建 Tk 窗口但不显示。希望它甚至不会在屏幕上闪烁。

Tcl 零食包是一个 Tk 扩展,有许多调用 Tk 函数的命令。所以最初的设计只是没有把它分成窗口和非窗口部分。但是 Tk 不需要使用零食,但您必须在某个时候运行事件循环。例如,在 Tcl 脚本(无 Tk)中,您可以执行以下操作:

package require snack
snack::sound snd -file $filename
snd play -blocking 0
after 5000 {set waiting 1}
vwait waiting

这将设置一个snd配置了文件数据的命令,然后告诉它播放。vwait waiting但是,在我们启动事件循环(

查看 tkSnack 源代码可能会帮助您将上述内容翻译成 pythonic。它们只是 Tcl/Tk 包的包装。但我怀疑运行 Tk 窗口将有助于播放音乐。

于 2013-10-03T15:19:11.263 回答
1

您可以使用root.withdraw()方法来隐藏您的窗口。

或者,如果您打算再次使用它,请使用root.deiconify()

于 2013-10-03T15:18:44.407 回答