2017-02-02 2 views
-3

Ich versuche, eine GUI mit Python zu machen. Ich benutze Tkinter Bibliothek und Python 2.7.NameError: globaler Name 'enterFilePath' ist nicht definiert

Mein Ziel ist es, den Pfad zu bekommen, den ich browse und es als String in das Eingabefeld einzufügen, was ich irgendwie nicht kann und ich bekomme den Fehler wie im Titel oben erwähnt.

Unten ist mein Code-Schnipsel:

def browseSWPath(self): 
    #global enterFilePath 
    self.frameTwo = Frame(self.mainFrame, width=640, height=100, bg='white') 
    self.frameTwo.pack(side='top', expand=False, fill='both') 

    self.swFlashPath = Button(self.frameTwo, text='SW Flash Path', command=flashFile) 
    self.swFlashPath.pack(side='left', padx=5, pady=5, anchor='nw') 
    #self.swPath = StringVar() 
    self.enterFilePath = Entry(self.frameTwo, bd=2, width=75) 
    self.enterFilePath.pack(side='left', pady=10, anchor='nw') 

def flashFile(): 
    pathName = tkFileDialog.askopenfilename() 
    if pathName: 
     enterFilePath.delete(0, END) 
     enterFilePath.insert(0, str(pathName)) 

Traceback:

enter image description here

+4

Bitte zeigen Sie den tatsächlichen und vollständigen Fehler. –

+0

Und was ist das 'enterFilePath'? Scheint .. nicht definiert. –

+0

'enterFilePath' ist Teil einer Klasse (welche, wir haben keine Ahnung). Sie benötigen also 'class_instance_name.enterFilePath', um es zu verwenden. (unter der Annahme, dass "flashFile" nicht Teil dieser Klasse ist, da es keinen 'self' Parameter hat) – Lafexlos

Antwort

0

Als @bryanOakley in den Kommentaren über diesen self.xx und xx sagte ist nicht dasselbe. Für diejenigen, die eine Antwort auf die Frage suchen, gab es zwei Änderungen, die es funktionierten.

  1. Entfernen Selbst von self.enterFilePath
  2. in der Linie enterFilePath.delete (0, Tkinter.END)

Vielen Dank!

Verwandte Themen