2013-10-03 25 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()