2011-08-29 108 views
2

,然後再繼續的一些系統信息:wxpython中EVT_BUTTON的按鈕標籤更改?

平臺:Mac OS X 10.7.1

Python版本:Python中的ActiveState 2.7.1

wxPython的版本:wxPython2.9-OSX-可可PY2。 7

我想在執行任務

所以要改變按鈕標籤,這裏是我做過什麼/想:

self.run_button=wx.Button(self.panel,ID_RUN_BUTTON,label='Install') 
self.Bind(wx.EVT_BUTTON, self.OnRun,id=ID_RUN_BUTTON) 

def OnRun(self,evt): 
    self.run_button.SetLabel('Installing..') 
    #call a function that does the installation task 
    installation_task() 
    #After task completion, set the button label back to "Install" 
    self.run_button.SetLabel('Install')[/code] 

當我嘗試這樣做時,它不會在任務執行時將標籤設置爲「正在安裝」。任何建議如何實現這一目標?

回答

2

該按鈕從來沒有機會重新繪製新標籤,因爲您正在GUI線程上運行您的邏輯(installation_task())。

您需要在後臺線程上運行installation_task(),以免鎖定GUI。