[Python-de] Speichern?

Rene Liebscher R.Liebscher at gmx.de
Wed Feb 21 09:27:02 EST 2001


Angelika wrote:
> 
> Hallo, also mein ganzes Programm lautet:
> 
> from tkFileDialog import *
> from Tkinter import *
> import Tkinter
> 
> tk = Tkinter.Tk()
> f = Tkinter.Frame(tk, relief='ridge', borderwidth=2)
> f.grid()
> 
> l = Tkinter.Label(f, text='Name:*')
> l.grid(row=0, sticky=W, column=0)
> e = Tkinter.Entry(f, width=25, relief='sunken',
> borderwidth=2)
> e.grid(row=0, column=1)
> l = Tkinter.Label(f, text='Adresse:*')
> l.grid(row=1, sticky=W, column=0)
> e = Tkinter.Entry(f, width=25, relief='sunken',
> borderwidth=2)
> e.grid(row=1, column=1)
> 
> def die():
>     sys.exit(0)
> 
> def savefile():
>     sname = asksaveasfilename()
>     if sname:
>         ofp = open(sname,"w")
>         ofp.write(tk.get(1.0,END))
>         ofp.flush()
>         ofp.close()
>         self.t.title(sname)
> 
> menubar = Tkinter.Menu(tk)
> 
> filemenu = Tkinter.Menu(menubar, tearoff=0)
> filemenu.add_command(label="Speichern", command=savefile)
> filemenu.add_separator()
> filemenu.add_command(label="Beenden", command=die)
> menubar.add_cascade(label="Datei", menu=filemenu)
> 
> tk.config(menu=menubar)
> 
> Tkinter.mainloop()
> 
Wenn Du spaeter noch auf die Entry-Felder zugreifen willst
solltest Du ihnen eindeutige Namen geben, z.B. so:

l = Tkinter.Label(f, text='Name:*')
l.grid(row=0, sticky=W, column=0)
entry_name = Tkinter.Entry(f, width=25, relief='sunken',
borderwidth=2)
entry_name.grid(row=0, column=1)
l = Tkinter.Label(f, text='Adresse:*')
l.grid(row=1, sticky=W, column=0)
entry_adresse = Tkinter.Entry(f, width=25, relief='sunken',
borderwidth=2)
entry_adresse.grid(row=1, column=1)

Danach kannst Du sie bequem mit get() nach ihrem Inhalt
fragen. (siehe unten)

def savefile():
    sname = asksaveasfilename()
    if sname:
        ofp = open(sname,"w")
        ofp.write(entry_name.get())
        ofp.flush()
        ofp.close()
        tk.title(sname)

Die letzte Zeile setzt den Fenstertitel auf den Dateinamen,
das war es doch was du wolltest? (Da tk direkt als Variable
zugreifbar ist, braucht du dort kein self, mal abgesehen
das ja kein Objekt existiert das self definiert.)

> Was habe ich falsch gemacht? Bzw, was kommt dort oben in
> die Klammer rein?
> 
> Hoffe, ihr könnt mir helfen!
> 
> Danke und Gruß, Angelika!
> 
> --- Uwe Tapper <Uwe.Tapper at dlr.de> schrieb: > Moin,
> >
> > zwei Nachfragen:
> >
> > Angelika wrote:
> > >
> > > Hallo,
> > >
> > > was muss denn unten in die Klammer rein??? Hab es mit
> > > "self.tl.get(1.0,END)" versucht. Jedoch erkennt er das
> >         ^^
> > Was ist denn eigentlich "tl" und ...
> >
> > > ...
> 

MfG
Rene Liebscher



More information about the Python-de mailing list