wxpython在函数调用后更改文本

时间:2012-09-21 19:54:26

标签: python wxpython

点击我的“浏览”按钮,文本框“tc1”中的文字不会改变。我得到一个控制台错误“全局名称'tc1'未定义”。我只想在单击button1

时更改tc1的文本

蟒:

def InitUI(self):

  panel = wx.Panel(self)

  button1 = wx.Button(panel, label="Browse...")
  button1.Bind(wx.EVT_BUTTON, self.OnBrowse)

  tc1 = wx.TextCtrl(panel, -1, "Text")

def OnBrowse(self, event):
  return tc1.SetValue("New Text")

2 个答案:

答案 0 :(得分:1)

你必须将其声明为全局 这应该是类

的属性
self.tc1 = None
def InitUI(self):
  button1 = wx.Button(panel, label="Browse...")
  button1.Bind(wx.EVT_BUTTON, self.OnBrowse)
  self.tc1 = wx.TextCtrl(panel, -1, "Text")

def OnBrowse(self, event):
  return self.tc1.SetValue("New Text")

答案 1 :(得分:1)

您正在为GUI定义一个类,而TextCtrl是该GUI的一部分,因此我认为将tc1作为self的属性是有意义的:

def InitUI(self):
  ...    
  self.tc1 = wx.TextCtrl(panel, -1, "Text")

def OnBrowse(self, event):
  return self.tc1.SetValue("New Text")