我正在尝试使用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初始化后继续工作(付费,暂停,恢复,加载音频等)后关闭。
有没有办法避免打开这个窗口?你可以解释为什么这样的库需要一个图形窗口才能工作吗?
答案 0 :(得分: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
)之前不会发生任何事情,在这种情况下,我们会在5秒内安排一些事情来等待等待。
查看tkSnack源代码可能会帮助您将上述内容转换为pythonic。它们只是Tcl / Tk包的包装。但我怀疑运行Tk窗口有助于播放音乐。
答案 1 :(得分:1)
您可以使用root.withdraw()
方法隐藏窗口。
或者,如果您计划再次使用它,请使用root.deiconify()