wxpython中EVT_按钮上的按钮标签更改?
继续之前,请先查看一些系统信息: 平台:Mac OS X 10.7.1 Python版本:ActiveState Python 2.7.1 wxPython版本:wxPython2.9-osx-cocoa-py2.7 我希望在执行任务时更改按钮标签 因此,以下是我所做/想要的:wxpython中EVT_按钮上的按钮标签更改?,python,button,wxpython,label,Python,Button,Wxpython,Label,继续之前,请先查看一些系统信息: 平台:Mac OS X 10.7.1 Python版本:ActiveState Python 2.7.1 wxPython版本:wxPython2.9-osx-cocoa-py2.7 我希望在执行任务时更改按钮标签 因此,以下是我所做/想要的: self.run_button=wx.Button(self.panel,ID_RUN_BUTTON,label='Install') self.Bind(wx.EVT_BUTTON, self.OnRun,id=ID_
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]
当我尝试这样做时,它不会在执行任务时将标签设置为“安装”。有什么建议吗?由于您正在GUI线程上运行逻辑(installation\u task()),因此该按钮永远没有机会用新标签重新绘制自身 您需要在后台线程上运行installation\u task(),这样就不会锁定GUI。您正在运行的“installation\u task”函数正在阻塞GUI的主循环。您需要使用线程更新标签,这意味着您需要学习wxPython的线程安全方法。见以下文章:或