0

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

Python:

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")
4

2 回答 2

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")
于 2012-09-21T19:57:13.113 回答
1

您正在为 GUI 定义一个类,并且它是该 GUI 的一部分,所以我认为创建一个属性是TextCtrl有意义的:tc1self

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

def OnBrowse(self, event):
  return self.tc1.SetValue("New Text")
于 2012-09-21T20:30:26.027 回答