2014-03-05 72 views
-1

我有一個使用TKinter GUI的程序。我試圖在使用winsound播放聲音的同時顯示GUI框。它可以工作,但在盒子凍結並且崩潰之後。沒有錯誤報告。我正在用Windows 7機器上的Python 3.3進行編程!請幫忙!下面是框和聲音的代碼:我想我可能知道你在說什麼Winsound崩潰Tkinter GUI

  t1 = threading.Thread(target=winsound.PlaySound, args=("C:/Interactive Program/LIP Source Files/skyisup.wav", 2)) 
      t2 = threading.Thread(target=lipgui.msgbox, args = ("The sky is up.",)) 
      t2.start() 

      t1.start() 
+0

因此,我還製作了一個較小的程序,其中包含我的大型程序的這一部分,而較小的程序完美無瑕!我的大課程出了什麼問題? –

+0

我認爲這與我在更大程序中的循環有關。我真的需要幫助! –

+0

我建議你在問題中添加代碼。 – Sam

回答

1

如果你正在一個線程中運行你的GUI代碼,那很可能是問題所在。 Tkinter被設計成在單線程中運行,最好是主線程。如果您訪問任何tkinter代碼或在多個線程中與任何窗口小部件交互,它將崩潰。事實上,你把lipgui.msgbox放在一個線程中讓我覺得這就是發生了什麼。

+0

如果是這樣的話。除了線程外,還有其他的方法嗎?我可以同時運行Gui和聲音文件嗎? –

+0

只要你在一個線程中播放聲音文件並在主線程中保留所有的gui函數,你應該沒問題 –

+0

謝謝!出於某種原因,我從來沒有想到這一點! –

0

....嘗試只是代碼,您認爲讓程序凍結前行加入這樣的事情。 ..

root.update() 

「root」是您的主tkinter窗口的名稱! 我從來沒有與你說過的聲音模塊,但我認爲應該做的伎倆!

+0

那麼問題是GUI是我使用tkinter編程的模塊。我試過了,它不起作用! –