Ich kann keine Zeichenfolge in meine tkinter Listbox 'einfügen'. Mein Code ist:python tkinter listbox - Fehler einfügen
from Tkinter import *
from tkFileDialog import askopenfilenames
def ImportFiles():
Tk().withdraw()
filenames = askopenfilenames()
for f in filenames:
listbox1.insert(END, f)
return
root = Tk()
root.geometry("500x800")
listbox1 = Listbox(root).grid(row=1, sticky=W, padx=20, pady=20)
button1 = Button(root, text='Import', command=ImportFiles).grid(row=2, sticky=W, padx=20)
root.mainloop()
Wenn ich dieses Codeschnipsel laufe, erscheint die GUI gut. Ich drücke den Knopf und und öffnet Dateidialog, wie erwartet. Dann, wenn ich einige Dateien auswähle und "OK" drücke, bombardiert der Code. Ich erhalte den folgenden Fehler:
Datei "C: \ Python27 \ lib \ lib-tk \ Tkinter.py", Zeile 1536 in Anruf
Rückkehr self.func (* args)
File ".../pyGUI_01.py", Zeile 10, in ImportFiles
listbox1.insert (END, f)
Attribute: 'NoneType' Objekt hat kein Attribut 'einfügen'
Ich verstehe es nicht. Ich habe das Objekt 'listbox1' in die TK Listbox gesetzt. In meiner IDE gibt es keinen Hinweis darauf, dass der Befehl 'Einfügen' nicht gültig ist (PyCharm). Was mache ich falsch?
Zunächst einmal gibt es viele Fragen, die Ihr Problem lösen würden, wenn Sie sie erforscht hätten. Zeigen Sie uns, was Sie getan haben, um das Problem selbst zu lösen. Bitte lesen Sie den Abschnitt [Fragen] (https://stackoverflow.com/help/how-to-ask) sorgfältig durch. –
Zweitens, 'filenames = askopenfilenames()': diese einzelne Codezeile erhält keinen Wert von einer Datei, die Sie auswählen. –
@Parviz. filenames = askopenfilenames() ERHÄLT die Dateinamen. Ich habe die Anweisung 'print' verwendet, um sie zu sehen. Es erzeugt ein Tupel von Strings. Haben Sie versucht, dies vor sich selbst zu verwenden? – twegner