2017-07-24 13 views
-1

J'ai créé une boîte de dialogue de saisie de texte, l'utilisateur y mettra des informations dans ce format A, B, C Maintenant, je veux diviser cette chaîne, afin que je puisse l'utiliser à d'autres fins . lorsque je tente ce code, il me donne l'erreur « nom global « name » est pas défini » Voici le lien pastebinPour diviser une entrée de chaîne dans 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() 

Répondre

1

Il est juste une chose de nommage des variables utiliser:

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

ou

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

yup, j'ai utilisé le second, il a travaillé –