so schauts aus. Ist es richtig? Bin ich auf dem richtigen Wege???
Sende nur Teile des Skriptes, damit man nicht vor der Länge erschreckt
Code: Alles auswählen
........
class Anwendung(Frame):
def __init__(self, master=None):
Frame.__init__(self, master) # das main window
self.smp3 = SMP3A2.SMP3s() #----->Instanz von SMP3s
self.createMenuBar() # auf root Window
self.createButtonBar() # auch auf root Window
self.createWidgets() # Fuelle die main area
self.createScrollbar()
#self.as_list() #----->MP3 Liste zurückgeben
self.pack() # und zeige die main area an dieser Stelle
self.createStatusbar("ok") # und wieder auf root Window ganz unten
self._root().protocol("WM_DELETE_WINDOW", self.endit) # wegen IDLE
...........
def createButtonBar(self):
self.buttonbar = Frame(self._root())
b = Button(self.buttonbar, text="Laden", command=self.smp3.laden) #<-----
b.pack(side=LEFT)
b = Button(self.buttonbar, text="Speichern", command=self.smp3.speichern) #<-----
b.pack(side=LEFT)
b = Button(self.buttonbar, text="Suchen", command=self.smp3.search) #<-----
b.pack(side=LEFT)
...........
b = Button(self.buttonbar, text="Alles loeschen", command=self.abbrechen) #<-----
b.pack(side=RIGHT)
b = Button(self.buttonbar, text="Abbrechen", command=self.abbrechen) #<-----
b.pack(side=RIGHT)
b = Button(self.buttonbar, text="Ok", command=self.smp3.zeige) #<-----
..........
self.lb = Listbox(self._root(), yscrollcommand=self.scrollbar.set)
#for i in as_list: #<------
#self.lb.insert(END, str(i)) #<-----
self.lb.pack(side=LEFT, fill=BOTH)
self.scrollbar["command"] = self.lb.yview
..........
#def as_list(self):
#...
.........
def abbrechen(self): #<-----
self.suche.delete(0, END)
self.dateiname.delete(0, END)
..........
Code: Alles auswählen
..........
def search(self,**patterns):
# uebersetze und kompiliere Patterns
cpatterns = {}
for p in patterns:
if patterns[p] != "": # das passt immer
epat = "^.*" + string.replace(patterns[p], "*", ".*") + ".*$"
cpatterns[p] = re.compile(epat)
# gib Ergebnisliste zurueck
return [dateiname for dateiname in self.mp3s
if testsearch(self.mp3s[dateiname], cpatterns)]
def zeige(self, dateinamen=None):
if type(dateinamen) == type([]):
for dateiname in dateinamen:
MP3s.zeige(self, dateiname)
else:
MP3s.zeige(self, dateinamen)
def speichern(self, speicherdateiname=vorgabespeicherdateiname):
f = file(speicherdateiname,"w")
for dateiname in self.mp3s:
dic = self.mp3s[dateiname]
for schluessel in dic:
s = "%s%s%s%s%s\n" % (dateiname, separator,
schluessel, separator, dic[schluessel])
f.write(s)
f.close()
def laden(self, speicherdateiname=vorgabespeicherdateiname):
self.mp3s = {}
f = file(speicherdateiname,"r")
for line in f:
line = string.replace(line,"\n","")
[dateiname, schluessel, wert] = string.split(line,separator)
self.set(dateiname, schluessel, wert)
f.close()
Viele Grüße
infostud