2011-08-29 99 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。