wxpython change text after函数

2024-09-30 00:40:18 发布

您现在位置:Python中文网/ 问答频道 /正文

单击“浏览”按钮,文本框“tc1”中的文本不会更改。我收到一个控制台错误“未定义全局名称‘tc1’”。我只想在单击按钮1时更改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")

Tags: text文本self名称def错误全局按钮
2条回答

您必须声明它是全局的 这应该是类的一个属性

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

您正在为GUI定义一个类,TextCtrl是该GUI的一部分,因此我认为使tc1成为{}的属性是有意义的:

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

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

相关问题 更多 >

    热门问题