2013-10-03 28 views
0

我试图用Snack来制作一个简单的MP3播放器。它与Tkinter一起工作。这里是什么文件说,关于它的用法:任何方式来摆脱使用小吃时Tk窗口?

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()行打开一个空的窗口,这可能小吃和小吃的初始化后关闭将继续努力同(支付,暂停,恢复,加载音频等等)。

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

回答

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

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

可选,如果你曾经刨再次使用它,使用root.deiconify()