2012-08-27 32 views
0

我想要方法tryme僅在我按下gui中的「snackPlay」按鈕時運行,但只要我運行腳本就會運行。我能做些什麼來使tryme只能在命令上運行? 謝謝。使用Tkinter按鈕從線程運行並停止一個函數

import threading 
from Tkinter import * 
from tkSnack import * 


class MyThread (threading.Thread): 

    def tryme (self): 

     print 'up uP UP'     

root = Tk() 
initializeSnack(root) 

f = Frame(root) 
f.pack() 
Button(f, bitmap='snackPlay', command=MyThread().tryme()).pack(side='left') 
root.mainloop() 

回答

1

我不知道了很多關於線程,但你應該嘗試command = MyThread().tryme而不是command = MyThread().tryme()(它爲我工作後,我刪除所有tkSnack的東西)。

Tkinter的回調預期可調用對象,無法正常結果

+0

@ user1627762 - 不確定(就像我說的,我沒有做太多的線程)。我猜想你可以爲'MyThread'添加一個布爾屬性,該屬性被初始化爲'False',然後每當切換到'True'時就從你的循環中斷開。然後添加第二個按鈕來切換該屬性。但就像我說的那樣,這只是一個猜測。 – mgilson

相關問題