wollte mit Tkinter einen Wizard schreiben, der Daten sammelt und diese dann letztlich in eine Datei speichert.
Nun habe ich bereits zu Beginn das Problem, dass die Texteinträge nicht abrufbar sind. Es heißt immer wieder, dass ein NoneType - Objekt keine insert() - Methode besitzt.
Die insert() - Methode habe ich nur in den Code eingefügt, um festzustellen, wo die Variable noch gesetzt ist - offensichtlich gleich danach nicht mehr

Warum wird self.Titel = Entry(...) nicht gesetzt?
Code: Alles auswählen
class Artikeldaten(object):
def __init__(self):
self.Titel = "" #StringVar()
self.Published = "" #StringVar()
self.Autor = "" #StringVar()
self.Status = "" #StringVar()
self.Teaser = "" #StringVar()
self.Text = "" #StringVar()
self.Bilder = []
class App(object):
def __init__(self, master, Artikel):
master.title("Schritt 1 - neuer Artikel")
self.Artikel = Artikel
frame = Frame(master, width=600, height=600, borderwidth = 1)
frame.pack()
self.createWidgets_step1(frame)
def back(self):
pass
def nextstep(self):
self.Artikel.Titel = self.Titel.get()
self.Artikel.Autor = self.Autor.get()
self.Artikel.Status = self.Status.get()
def createWidgets_step1(self, frame):
self.Lbls = [] # alle Labels werden hier gesammelt
self.Titel = Entry(frame, width=50).grid(row=0, column=1)
self.Titel.insert("ASDFFEW")
self.Lbls.append( Label(frame, text="Titel").grid(row=0) )
HILFE="Hilfe: Der Titel des Artikels"
self.Lbls.append( Label(frame, text=HILFE).grid(row=1, column=1) )
print self.Titel.get()
self.Autor = Entry(frame, width=50).grid(row=2, column=1)
self.Lbls.append( Label(frame, text="Autor").grid(row=2) )
HILFE="Hilfe: Der Autor im Format 'j. sedlak'"
self.Lbls.append( Label(frame, text=HILFE).grid(row=3, column=1) )
self.Status = Entry(frame, width=50).grid(row=4, column=1)
self.Lbls.append( Label(frame, text="Status").grid(row=4) )
HILFE="Hilfe: Der Status kann entweder v (=visible) oder das Ennddatum im Format YYYYMMDD enthalten"
self.Lbls.append(Label(frame, text=HILFE).grid(row=5, column=1) )
self.Back = Button(frame, text="Zurück <<", command=self.back)
self.Back.grid(row=6)
self.Weiter = Button(frame, text="Weiter >>", command=self.nextstep)
self.Weiter.grid(row=6, column=1)
self.Abbruch = Button(frame, text="Abbruch", command=frame.quit)
self.Abbruch.grid(row=6, column=2)
def destroyWidgets_step1(self,frame):
self.Lbls = None
self.Titel = None
self.Autor = None
self.Status = None
root = Tk()
app = App(root, Artikeldaten())
root.mainloop()