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 に答える