2017-07-24 13 views
-1

我已经创建了一个文本输入对话框,用户将以这种格式在这里输入一些信息A,B,C 现在我想拆分这个字符串,以便我可以将它用于其他目的。当我尝试这个代码,它给我的错误“全球名‘name’没有定义” 这里是引擎收录链接要在wxpython中分割字符串输入

import wx 
class MyFrame(wx.Frame): 
    def __init__(self, parent): 
     wx.Frame.__init__(self, parent, -1, "Dialog Test",size=(500,400)) 
     self.panel = wx.Panel(self) 
     sizer = wx.BoxSizer(wx.VERTICAL) 
     self.button = wx.Button(self.panel, label="Click me") 
     sizer.Add(self.button, 0, wx.EXPAND | wx.ALL, 10) 
     self.panel.SetSizer(sizer) 
     self.Bind(wx.EVT_BUTTON, self.OnButton) 

    def OnButton(self,event): 
     dlg = GetData(parent = self.panel) 
     dlg.ShowModal() 
     dlg.Destroy() 

class GetData(wx.Dialog): 
    def __init__(self, parent): 
     wx.Dialog.__init__(self, parent, wx.ID_ANY, "Name Input", size= (650,220)) 
     self.panel = wx.Panel(self,wx.ID_ANY) 
     self.lblname = wx.StaticText(self.panel, label="Name", pos=(20,20)) 
     self.name = wx.TextCtrl(self.panel, value="", pos=(110,20), size=(500,-1)) 
     self.saveButton =wx.Button(self.panel, label="Save", pos=(110,160)) 
     self.closeButton =wx.Button(self.panel, label="Cancel", pos=(210,160)) 
     self.saveButton.Bind(wx.EVT_BUTTON, self.SaveConnString) 
     self.closeButton.Bind(wx.EVT_BUTTON, self.OnQuit) 
     self.Bind(wx.EVT_CLOSE, self.OnQuit) 
     self.Show() 

    def OnQuit(self, event): 
     self.result_name = None 
     self.Destroy() 

    def SaveConnString(self, event): 
     self.result_name = self.name.GetValue() 
     print name.split() 
     print name.split(' ', 1) 
     self.Destroy() 

app = wx.App() 
frame = MyFrame(None) 
frame.Show() 
app.MainLoop() 

回答

1

它只是一个变量命名的事情请使用:

def SaveConnString(self, event): 
    name = self.name.GetValue() 
    print name.split() 
    print name.split(' ', 1) 

def SaveConnString(self, event): 
    self.result_name = self.name.GetValue() 
    print self.result_name.split() 
    print self.result_name.split(' ', 1) 
+0

yup,我用第二个它工作 –